【问题标题】:string into single column [duplicate]字符串成单列[重复]
【发布时间】:2015-01-31 01:25:19
【问题描述】:
我有如下所示的逗号分隔字符串来转换成一列。
示例:
给定字符串:
DECLARE @STR VARCHAR(MAX) = 'ABC,DEF,GHI,JKL,MNO'
必须转换成单列:
columnName
-----------
ABC
DEF
GHI
JKL
MNO
【问题讨论】:
标签:
sql-server
sql-server-2008-r2
【解决方案1】:
试试这个。
使用 LTRIM 和 RTRIM 函数删除前导和尾随空格。
DECLARE @STR VARCHAR(MAX) = 'ABC,DEF,GHI,JKL,MNO'
SELECT Rtrim(Ltrim(Split.a.value('.', 'VARCHAR(100)'))) Split_Data
FROM (SELECT Cast ('<M>' + Replace(@STR, ',', '</M><M>') + '</M>' AS XML) AS Data) AS A
CROSS APPLY Data.nodes ('/M') AS Split(a)
输出:
Split_Data
----------
ABC
DEF
GHI
JKL
MNO