原型数据:
需求:
按逗号或分号将字段IT_Description值分割为多行,填充下拉列表
SQL实现脚本
SELECT b.vv FROM(
SELECT CONVERT(XML,'<n>'+REPLACE(REPLACE(IT_Description,';',','),',','</n><n>')+'</n>') AS xmlval
FROM tb_InvoiceType
WHERE IT_code ='D' AND (IT_Comp ='220')
) a CROSS APPLY(SELECT k.n.value('.','nvarchar(80)') vv FROM a.xmlval.nodes('n') k(n)) b
输出结果:
基本原理:先将该字段值统一替换为逗号分割,再将逗号分割替换转为XML数据类型,再利用xml转为多个行,SQL SERVER2005 XML 使用不是很清楚,后面了解后再更新
xml参考:https://www.cnblogs.com/fly12300/p/4151670.html