SQL Server2008中将SELECT语句返回的多条记录转换以逗号分隔的字符串

SQL Server2008中将SELECT语句返回的多条记录转换以逗号分隔的字符串


通过SELECT语句查询将返回一个多行的记录集,我们可以通过如下方式将这些记录拼接成逗号分隔的字符串。


以某个表的字段为例:

1、获取表名编号

SELECT TOP 1 [ID] FROM [sysobjects] WHERE [Type] = 'u' AND name = 'ntxuagqd'


2、获取表中的所有字段的名字

SELECT Name FROM [syscolumns] WHERE ID = 1 AND STATUS <> 0x80

注:<> 0x80表示过滤掉自增字段


3、拼接

DECLARE @FldLst VARCHAR(MAX);
SET @FldLst = '';


SELECT @FldLst = (CASE WHEN @FldLst = '' THEN Name ELSE @FldLst + ', ' + Name END) 
FROM [syscolumns] WHERE [ID] = (SELECT TOP 1 [ID] FROM [sysobjects] WHERE [Type] = 'u' AND name = 'ntxuagqd')
 AND [Status] <> 0x80;


SELECT @FldLst;

你可能感兴趣的:(SQL,Server)