原型数据:
需求:
按逗号或分号将字段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
---------------------
作者:加菲猫Block
来源:优快云
原文:https://blog.youkuaiyun.com/leo628/article/details/79730937
版权声明:本文为博主原创文章,转载请附上博文链接!
SQLSERVER , 逗号 分割为多行
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.youkuaiyun.com/baojiangfeng/article/details/74531590
今天工作遇到了这个需求,发现有几种办法可行.现先记录最简便的办法
方法1
select INTERNAL_FAULT_REASON from TEST_TABLE ;
select substring(TEST_COL+',',number,charindex(',',TEST_COL+',',number)-number)
from TEST_TABLE ,master..spt_values s
where type='p' and number>0 and substring(','+TEST_COL,number,1)=','
查询结果:
需要显示行号可以加个
row_number()over(order by getdate())
需要其他字段自行添加
---------------------
作者:baojiangfeng
来源:优快云
原文:https://blog.youkuaiyun.com/baojiangfeng/article/details/74531590
版权声明:本文为博主原创文章,转载请附上博文链接!