SQL字符串分割多行

本文介绍了一种在SQL Server中将字段值按逗号或分号分割成多行的方法,通过将字段值转换为XML格式,再利用XML解析功能实现行的拆分,适用于需要将单个字段中的多个值转换为多行数据的场景。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

原型数据:

需求:

按逗号或分号将字段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 
版权声明:本文为博主原创文章,转载请附上博文链接!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值