答案 0 :(得分:2)
在数据流任务中,在OLEDB Source
中选择源类型为SQL Command
并使用以下命令(将Tablename
替换为您的表名) :
;WITH tmp(ID, DataItem, [Group]) AS(
SELECT ID, LEFT([Group], CHARINDEX(',', [Group] + ',') -1),
STUFF([Group], 1, CHARINDEX(',', [Group] + ','), '')
FROM [Tablename]
UNION ALL
SELECT ID, LEFT([Group], CHARINDEX(',',[Group]+',')-1),
STUFF([Group], 1, CHARINDEX(',',[Group]+','), '')
FROM tmp
WHERE [Group] > ''
)
SELECT ID, DataItem
FROM tmp
ORDER BY ID
<强>参考强>
您可以参考此链接获取详细答案:
答案 1 :(得分:1)
你可以试试这个
SELECT
tbl.id,
Splita.a.value('.', 'NVARCHAR(MAX)') [Group]
FROM
(
SELECT CAST('<X>'+REPLACE( [Group], ',', '</X><X>')+'</X>' AS XML) AS Col1,
id
FROM Table1
) AS tbl
CROSS APPLY Col1.nodes('/X') AS Splita(a)
这是Fiddler链接。
答案 2 :(得分:0)
如果您决定在源数据库上使用TSQL进行拆分,则可以在SQL Server 2016及更高版本上使用STRING_SPLIT()。