使用 split 函数从一对字符串中提取键

Extract keys from string of couples using the split function

提问人:ozlem 提问时间:9/12/2023 最后编辑:lemonozlem 更新时间:9/12/2023 访问量:44

问:

我的表格中有一列包含多个产品信息。

数据类型为字符串,每个产品信息用分号分隔,并包含两条用逗号分隔的信息。

我需要情侣中的第一根弦。有没有办法用函数处理它?SPLIT

例如,列中的值(长度可能因记录而异)。结果应为:。A,1;B,2;C3;D,4A,B,C,D

我试过了,但没有用。SPLIT(SPLIT(column,';'),',')

SQL 字符串 google-bigquery 拆分

评论

0赞 lemon 9/12/2023
您正在使用哪种 DBMS?
0赞 ozlem 9/12/2023
我使用大查询

答:

0赞 lemon 9/12/2023 #1

问题是返回一个数组而不是一个字符串,因此您需要在重新应用 .最后,您可以使用将密钥放入单个列中。SPLITSPLIT[offset(0)]

如果需要对它们进行聚合,可以根据需要使用或。ARRAY_AGGSTRING_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 子句。现在,我再试一次并正确获得结果。非常感谢您的帮助:)