无法在sql server中分隔分隔数据
Not able to separate delimited data in sqlserver
我有一个名为 Description 的列,其中的行与分隔符“-
”一起插入。
我是用查询把它分开的。查询如下
select Description from Sheet1$
cross apply
SplitString('Description','-')
列有以下数据
Description
00000131-125
0000154-4625-4569-4568-45213
试试下面这个
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
我有一个名为 Description 的列,其中的行与分隔符“-
”一起插入。
我是用查询把它分开的。查询如下
select Description from Sheet1$
cross apply
SplitString('Description','-')
列有以下数据
Description
00000131-125
0000154-4625-4569-4568-45213
试试下面这个
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