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
函数来清除它们。如果这对您不起作用,请提供一些更真实的示例数据。
在 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
函数来清除它们。如果这对您不起作用,请提供一些更真实的示例数据。