使用分割功能显示在单独一行
考虑我已经创建dbo.split
功能,这样操作的每个值:使用分割功能显示在单独一行
查询:
select substr from dbo.split(',' , 'A,B,C')
结果:
|Substr| --------
|A |
--------
|B |
--------
|C |
--------
现在我想使用此功能转换此表格:
|ID|Char| ---------
|1 |A,B |
---------
|2 |A |
---------
|3 |B,C |
---------
这个结果:
|ID|Char| ---------
|1 |A |
---------
|1 |B |
---------
|2 |A |
---------
|3 |B |
---------
|3 |C |
---------
回答:
试试这个:
这个工作没有Split
功能。
DECLARE @Table TABLE(ID INT, [Char] VARCHAR(20)) INSERT INTO @Table VALUES(1,'A,B')
INSERT INTO @Table VALUES(2,'A')
INSERT INTO @Table VALUES(3,'B,C')
SELECT A.ID,
Split.a.value('.', 'VARCHAR(100)') AS [Char]
FROM
(
SELECT ID,
CAST ('<M>' + REPLACE([Char], ',', '</M><M>') + '</M>' AS XML) AS Data
FROM @Table
) AS A CROSS APPLY Data.nodes ('/M') AS Split(a);
以上是 使用分割功能显示在单独一行 的全部内容, 来源链接: utcz.com/qa/262245.html