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

如何在BigQuery中将字符串中的单词拆分为多行

解决字符串拆分为单独行的问题

我来帮你搞定这个拆分字符串到单行的需求!你遇到的语法错误主要是两个原因:一是你在UNNEST里引用了原本的字符串列context_page_title,但在CTE里你已经把它转换成数组列exemple了;二是BigQuery中UNNEST数组的正确用法需要和表做交叉联结,或者直接在FROM子句中处理。

正确写法一:基于你的CTE修改

你只需要在FROM子句中把数组列exemple通过UNNEST展开,同时给展开后的每个元素起个别名:

WITH teste AS (
  SELECT SPLIT(context_page_title, " ") AS exemple
  FROM (
    SELECT "a b c ddd ee eee dd" AS context_page_title
  )
)
SELECT word
FROM teste, UNNEST(exemple) AS word

正确写法二:简化版(无需CTE)

如果不需要保留CTE,也可以直接在FROM里拆分并展开,代码更简洁:

SELECT word
FROM (
  SELECT "a b c ddd ee eee dd" AS context_page_title
), UNNEST(SPLIT(context_page_title, " ")) AS word

为什么你的代码报错?

你之前的错误代码里写了SELECT UNNEST(context_page_title) FROM teste,这里有两个问题:

  1. context_page_title在CTEteste里已经不存在了,你定义的数组列是exemple;
  2. BigQuery中不能直接在SELECT子句里单独使用UNNEST(除非搭配LATERAL或者在特定场景),更标准的做法是在FROM子句中通过交叉联结(逗号等价于CROSS JOIN)来展开数组。

运行上面的正确代码后,你会得到每个单词单独一行的结果:

word
----
a
b
c
ddd
ee
eee
dd

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 21:37:44