提问人:ozlem 提问时间:9/12/2023 最后编辑:lemonozlem 更新时间:9/12/2023 访问量:44
使用 split 函数从一对字符串中提取键
Extract keys from string of couples using the split function
问:
我的表格中有一列包含多个产品信息。
数据类型为字符串,每个产品信息用分号分隔,并包含两条用逗号分隔的信息。
我需要情侣中的第一根弦。有没有办法用函数处理它?SPLIT
例如,列中的值(长度可能因记录而异)。结果应为:。A,1;B,2;C3;D,4
A,B,C,D
我试过了,但没有用。SPLIT(SPLIT(column,';'),',')
答:
0赞
lemon
9/12/2023
#1
问题是返回一个数组而不是一个字符串,因此您需要在重新应用 .最后,您可以使用将密钥放入单个列中。SPLIT
SPLIT
[offset(0)]
如果需要对它们进行聚合,可以根据需要使用或。ARRAY_AGG
STRING_AGG
WITH cte AS (
SELECT SPLIT(<your_field>, ';') AS arr
FROM <your_tab>
)
SELECT ARRAY_AGG(SPLIT(couples, ',')[offset(0)])
FROM cte
CROSS JOIN UNNEST(cte.arr) AS couples
如果有多个需要从中提取键的记录,最好保留某种 id(标识输入表中的每一行),将其引入,并将其用于最终聚合 ()。GROUP BY id
评论
1赞
ozlem
9/12/2023
哦,对不起,我忘了添加 Group By 子句。现在,我再试一次并正确获得结果。非常感谢您的帮助:)
评论