我想知道如何将逗号分隔的值转换为Redshift中的行.我担心我自己的解决方案不是最优的.请指教.我有一个表与其中一个具有逗号分隔值的列.例如:
我有:
user_id|user_name|user_action
-----------------------------
1 | Shone | start,stop,cancell...
Run Code Online (Sandbox Code Playgroud)
我想看看
user_id|user_name|parsed_action
-------------------------------
1 | Shone | start
1 | Shone | stop
1 | Shone | cancell
....
Run Code Online (Sandbox Code Playgroud) 可能重复:
将逗号分隔的字符串转换为单独的行
我有一个存储过程的以下输出,并想知道将值拆分为多行的最佳方法.
reference name subjects subjectstitle
LL9X81MT Making and Decorating Pottery F06,F27,F38 NULL
Run Code Online (Sandbox Code Playgroud)
我需要在逗号处修剪主题字段并将信息复制到三行,以便数据如下所示.
reference name subjects subjectstitle
LL9X81MT Making and Decorating Pottery F06 NULL
LL9X81MT Making and Decorating Pottery F27 NULL
LL9X81MT Making and Decorating Pottery F38 NULL
Run Code Online (Sandbox Code Playgroud)
我正在使用MS SQL Server 2008来设置这些SP,并且需要一些关于如何分割主题字段的帮助.
谢谢,
有一个像这样的表:
uid | segmentids
-------------------------+----------------------------------------
f9b6d54b-c646-4bbb-b0ec | 4454918|4455158|4455638|4455878|4455998
asd7a0s9-c646-asd7-b0ec | 1265899|1265923|1265935|1266826|1266596
gd3355ff-cjr8-assa-fke0 | 2237557|2237581|2237593
laksnfo3-kgi5-fke0-b0ec | 4454918|4455158|4455638|4455878
Run Code Online (Sandbox Code Playgroud)
如何使用以下命令创建新表:
uid | segmentids
-------------------------+---------------------------
f9b6d54b-c646-4bbb-b0ec | 4454918
f9b6d54b-c646-4bbb-b0ec | 1265899
f9b6d54b-c646-4bbb-b0ec | 2237557
f9b6d54b-c646-4bbb-b0ec | 4454918
f9b6d54b-c646-4bbb-b0ec | 4454918
asd7a0s9-c646-asd7-b0ec | 1265899
asd7a0s9-c646-asd7-b0ec | 1265923
asd7a0s9-c646-asd7-b0ec | 1265935
asd7a0s9-c646-asd7-b0ec | 1266826
asd7a0s9-c646-asd7-b0ec | 1266596
Run Code Online (Sandbox Code Playgroud)
细分的数量是动态的,可以随每条记录而变化.我尝试使用带分隔符的Split函数,但它需要string中的索引,这里是动态的.
有什么建议?