在BigQuery中如何将逗号分隔的列值拆分生成独立新行
BigQuery逗号分隔字段拆分为多行实现方案
BigQuery 提供原生的SPLIT字符串拆分函数和UNNEST数组展开语法,可以直接替代原SQL Server方案中的XML处理+CROSS APPLY逻辑,写法更简洁高效。
适配你的表结构的实现代码
SELECT model, -- 如果需要alarm为数值类型,可替换为 CAST(alarm_val AS INT64) AS alarm alarm_val AS alarm FROM -- 替换为你实际的表名 your_dataset.your_table_name, -- 按逗号拆分alarm字段后展开为独立行 UNNEST(SPLIT(alarm, ',')) AS alarm_val
逻辑说明
SPLIT(alarm, ','):将alarm字段的逗号分隔字符串拆分为字符串数组UNNEST():将数组横向展开为多行,和原表其他字段自动关联,效果完全等价于原方案中的CROSS APPLY- 展开后自动过滤空值,如果原字段为空也不会产生多余的空行,不需要额外做兼容处理
内容的提问来源于stack exchange,提问作者shab1r
相关产品推荐
相关产品推荐

