Azure Synapse:将长度为 n 的分隔列表列转换为 n 个不同的列

Azure Synapse: turn an n-length, delimited list column into n distinct columns

在 Azure Synapse 中,我想转换此 table

id,list
0,'a:b'
1,'d:e'
2,'g:h'

进入这个

id,col1,col2
0,a,b
1,d,e
2,g,h

我确定 STRING_SPLIT 发挥了作用,但它的 return 格式让我感到困惑。

如果您的数据像所示的那样简单,那么像这样的东西就可以了:

;WITH cte AS (
SELECT *, CHARINDEX( ':', list ) AS xpos
FROM dbo.rawData 
)
SELECT id, LEFT( list, xpos - 1 ) AS col1, SUBSTRING ( list, xpos + 1, 50 ) AS col2
FROM cte

如果您的数据有单引号,请使用 REPLACE 函数来清除它们。如果这对您不起作用,请提供一些更真实的示例数据。