BigQuery查询报错求助:拆分标签并移除无关字符偏移
BigQuery查询语法错误修正方案
问题场景
你的column1数据格式为tag1,3125;tag2,024,需要实现两个逻辑:按分号拆分行、移除逗号及后续字符偏移量仅保留标签名,但原查询报Syntax error: Unclosed string literal错误。
原查询的问题点
SPLIT返回数组类型,无法直接传入REGEXP_REPLACE处理,必须先展开数组- 表名不能用单引号包裹,需用反引号或直接写合法表名
- 字符串替换中使用了HTML转义字符
",不符合BigQuery语法
修正后的查询
SELECT person, COUNT(*) AS count FROM ( SELECT REGEXP_REPLACE(tag_item, r',.*', '') AS person FROM `db_name`, UNNEST(SPLIT(column1, ';')) AS tag_item ) GROUP BY person ORDER BY 2 DESC
修改说明
- 用
UNNEST(SPLIT(column1, ';'))将拆分后的标签数组展开为独立行,确保每个标签能被单独处理 - 表名改用反引号包裹(若表名无特殊字符可直接省略反引号)
- 将转义的
"替换为标准空字符串'',符合BigQuery字符串书写规范 - 为展开的数组元素命名
tag_item,明确处理对象
内容的提问来源于stack exchange,提问作者Celeste
相关产品推荐
相关产品推荐

