现在的位置: 首页 > 综合 > 正文

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

2013年04月20日 ⁄ 综合 ⁄ 共 600字 ⁄ 字号 评论关闭

 

使用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个字符,在某种意义上类似于替换。

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

 

抱歉!评论已关闭.