You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

在BigQuery中如何用REGEXP_EXTRACT_ALL与SPLIT拆分字段为多行?

BigQuery按'§'拆分字段并转为多行的解决方案

要实现将message字段按'§'拆分后每行显示一个内容,核心是用SPLIT函数拆分字符串为数组,再通过UNNEST将数组展开为多行记录,具体SQL示例如下:

基础用法(仅输出拆分后的内容)

SELECT split_item
FROM your_table,
UNNEST(SPLIT(message, '§')) AS split_item

保留原表其他字段的用法

如果需要同时保留原表的其他字段(比如主键、时间戳等),可以这样写:

SELECT id, create_time, split_item
FROM your_table,
UNNEST(SPLIT(message, '§')) AS split_item

针对你提供的示例数据

假设message字段值为-ABC/12§HAVEANICEDAY§JANEDOE@EMAIL.COM§XXXXXXXXXXXX1234,执行上述SQL后会输出4行结果:

-ABC/12
HAVEANICEDAY
JANEDOE@EMAIL.COM
XXXXXXXXXXXX1234

为什么之前的尝试没成功

  • REGEXP_EXTRACT_ALL(message, '*§')正则表达式写法错误,正确的正则匹配逻辑复杂且没必要,用SPLIT更直接高效;
  • SPLIT(message, '§')[SAFE_OFFSET(0)]仅提取了拆分后数组的第一个元素,没有将整个数组展开为多行,必须配合UNNEST才能实现每行一个内容的需求。

内容的提问来源于stack exchange,提问作者Vicki

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 07:30:54