sql server某列根据逗号转多行,其它字段不变
2024-10-21 02:58:49
效果:
语句代码:
declare @moulds varchar(4000);
set @moulds='55-480730-03,55-487780-01,,55-487780-02 ';
declare @table1 table(col1 nvarchar(4000),col2 varchar(10));
declare @table2 table(col1 nvarchar(40),xmlval1 xml);
insert into @table1 values(replace(@moulds, char(13)+char(10), ''),'a');
--原始结果集
select * from @table1
--处理后结果集
select rtrim(ltrim(replace(bs.v1, char(9), '') )) col1,a.col2
from (select convert(xml, concat('<n>',replace(col1 COLLATE Chinese_PRC_CS_AS_WS, ',', '</n><n>'),'</n>')) as xmlval1,col2 from @table1) a
cross apply(select k.n.value('.', 'nvarchar(80)') v1 from a.xmlval1.nodes('n') k(n) ) bs
where bs.v1 !='';
题外话,区分大小写处理说明:在指定字段后面加上 COLLATE Chinese_PRC_CS_AS_WS
如下示例,如果不加“COLLATE Chinese_PRC_CS_AS_WS”,则中文逗号也会被替换
最新文章
- kubernetes听云实战发布版
- window server开发
- 配置centos防火墙(iptables)开放80端口
- Hadoop学习之HBase和Hive的区别
- Spring——自定义属性编辑器+Bean的生存范围+Bean的生命周期
- Oracle\PLSQL Developer报“动态执行表不可访问,本会话的自动统计被禁止”的解决方案
- Java中的null值总结
- ResDrawableImgUtil【根据图片名称获取resID值或者Bitmap对象】
- React+Ant Design设置左侧菜单导航路由的显示与隐藏(与权限无关)
- oracle 简单crud
- linux后台运行之&和nohup区别,模拟后台守护进程
- add a private constructor to hide the implicit public one(Utility classes should not have public constructors)
- 洛咕 P3338 [ZJOI2014]力
- zabbix监控路由器
- JSON与Javabean转换的几种形式
- 【做题记录】USACO silver * 50(第一篇)
- android-tip-各种clock的使用
- 使用airdrop进行文件共享
- 用大白话告诉你什么是Event Loop
- 【luogu P4462 [CQOI2018]异或序列】 题解