我想拆分用逗号分隔的字符串并在 SQL Server 中另存为新行 [重复]
Posted
技术标签:
【中文标题】我想拆分用逗号分隔的字符串并在 SQL Server 中另存为新行 [重复]【英文标题】:I want to split the strings seperated with comma and save as new row in SQL Server [duplicate] 【发布时间】:2017-12-06 11:36:54 【问题描述】:表1:
Col1 | Col2
-----+-------------------
AAA | BB1,KB2,YB3,BP4
表2:
Col1 | Col2
-----+--------
AAA | BB1
AAA | KB2
AAA | YB3
AAA | BP4
有人可以帮助我使用 SQL Server 2008 R2 或 SSIS 2008 R2 以这种方式拆分和保存结果吗?
【问题讨论】:
似乎是正确的做法! 【参考方案1】:试试这个
DECLARE @T TABLE
(
Col1 VARCHAR(10),
Col2 VARCHAR(100)
)
INSERT INTO @T
VALUES('AAA','BB1,KB2,YB3,BP4')
;WITH CTE
AS
(
SELECT
Col1,
Col2_1 = SUBSTRING(Col2,CHARINDEX(',',Col2)+1,LEN(Col2)),
Col2 = SUBSTRING(Col2,1,CHARINDEX(',',Col2)-1)
FROM @T
UNION ALL
SELECT
Col1,
Col2_1 =
CASE WHEN CHARINDEX(',',Col2_1) > 0
THEN SUBSTRING(Col2_1,CHARINDEX(',',Col2_1)+1,LEN(Col2_1))
ELSE NULL END,
Col2 = CASE WHEN CHARINDEX(',',Col2_1) > 0
THEN SUBSTRING(Col2_1,1,CHARINDEX(',',Col2_1)-1)
ELSE Col2_1 END
FROM CTE
WHERE ISNULL(Col2_1,'')<>''
)
SELECT
Col1,
Col2
FROM CTE
【讨论】:
像魅力一样工作 - 非常感谢以上是关于我想拆分用逗号分隔的字符串并在 SQL Server 中另存为新行 [重复]的主要内容,如果未能解决你的问题,请参考以下文章