使用分割功能显示在单独一行

考虑我已经创建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

回到顶部