只是想寻求帮助。
我试图用分号作为分隔符来分割分隔值。
逗号无法替换为分号,因为有些值带有逗号。
ID Value
1 | A&B;C;D;E, F
变换为:
ID Value
1 A&B
1 C
1 D
1 E, F
我尝试调整网上的 SQL 脚本,但没有成功
SELECT F1.ID,
O.splitdata
FROM
(
SELECT OldID,
cast('<X>'+replace((SELECT ColumnName + '' FOR XML PATH('')),';','</X><X>')+'</X>' as XML) as xmlfilter from TableName F
)F1
CROSS APPLY
(
SELECT fdata.D.value('.','varchar(max)') as splitdata
FROM f1.xmlfilter.nodes('X') as fdata(D)) O
它适用于我的某些列,但如果列具有特殊或非法字符,则会输出此错误:
Msg 9411, Level 16, State 1, Line 2
XML parsing: line 1, character 16, semicolon expected
Thanks!