SQL转换列为以逗号分隔的字符串

本文详细介绍了如何利用FORXMLPATH函数将数据库表中某一列的数据转换为以逗号分隔的字符串,通过创建本地临时表并执行SQL语句实现数据的整合与展示。

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

 

使用FOR XML PATH来将表中某一列的数据转换为用逗号分隔的字符串,例子如下: Create TABLE #rowconcat ( rowno INT PRIMARY KEY, rowcode VARCHAR(30) )

Insert INTO #rowconcat VALUES (1,'one') Insert INTO #rowconcat VALUES (2,'two') Insert INTO #rowconcat VALUES (3,'three') Insert INTO #rowconcat VALUES (4,'four') Insert INTO #rowconcat VALUES (5,'five')

Select STUFF((Select ','+rowcode  FROM #rowconcat FOR XML PATH('')),1,1,'');  最后返回的字符串就是这样:one,two,three,four,five

      上面使用到了STUFF函数,我以前没用过,在MSDN上查了下用法,原来是 删除指定长度的字符,并在指定的起点处插入另一组字符。代码中最后一句就是要删掉原字符串中的第1个字符,在某种意义上类似于替换。

(以一个井号 (#) 开头的那些表名。只有在创建本地临时表的连接上才能看到这些表,链接断开时临时表即被删除 (本地临时表为创建它的该链接的会话所独享)或者这样说局部临时表是有当前用户创建的,并且只有当前用户的会话才可以访问。)

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值