无法在sqlserver中分隔定界数据

时间:2019-06-14 07:37:12

标签: sql sql-server sql-server-2008

我有一个名为Description的列,其中行与定界符'-'一起插入。

我使用查询将其分开。该查询在下面提到

select Description from Sheet1$ 
cross apply
 SplitString('Description','-')  

这些列包含以下数据

Description
00000131-125
0000154-4625-4569-4568-45213

1 个答案:

答案 0 :(得分:0)

在下面尝试一下

DECLARE @Str AS TABLE ([Description] varchar(max) )
INSERT INTO @Str
SELECT '00000131-125'   UNION ALL
SELECT '0000154-4625-4569-4568-45213'


SELECT Id,
       LTRIM(RTRIM(Split.a.value('.','nvarchar(100)'))) AS [Description]    
FROM
(
    SELECT  
       ROW_NUMBER()OVER(ORDER BY (SELECT Null)) AS Id, 
       CAST('<S>'+(REPLACE([Description],'-','</S><S>')+'</S>') AS XML ) AS [Description]
    FROM @Str
)AS A
CROSS APPLY [Description].nodes('S') AS Split(a)

在查询的末尾添加FOR XML PATH,可以将查询的结果作为XML元素输出,并在PATH参数中包含元素名称。

结果

Id  Description
---------------
1   00000131
1   125
2   0000154
2   4625
2   4569
2   4568
2   45213