bigquery 将字符串拆分为字符

bigquery split string to chars

假设我有一个 table,其中一列是一个字符串:

id    |    value
________________
1     |    HELLO
----------------
2     |      BYE

我如何将每个字符串拆分成它的字符,以创建以下 table:

id    |    value
________________
1     |     H
----------------
1     |     E
----------------
1     |     L
----------------
1     |     L
....

?

您可以使用空字符串作为分隔符的 SPLIT 函数,即

SELECT id, SPLIT(value, '') value FROM Table

请注意,SPLIT returns 重复字段,如果您想要平坦的结果(您的问题不清楚),您可以使用

SELECT * FROM 
  FLATTEN((SELECT id, SPLIT(value, '') value FROM Table), value)

显然,如果您传递一个空的定界符,它会起作用:

select id, split(str, '')
from (
  select 1 as id, "HELLO" as str
)