从行中获取逗号分隔的字符串

时间:2017-01-22 05:58:41

标签: sql sql-server tsql sql-server-2012

MS Sql Server中的查询将在一个字符串中连接我的行,用逗号分隔(如下所示

query to delimeter string

2 个答案:

答案 0 :(得分:9)

使用STUFFFOR XML

创建并填充样本表(在将来的问题中保存此步骤)

DECLARE @T AS TABLE
(
    Name varchar(10)
)

INSERT INTO @T VALUES
('John'),
('Vicky'),
('Sham'),
('Anjli'),
('Manish')

查询:

SELECT STUFF((
    SELECT ',' + Name
    FROM @T
    FOR XML PATH('')
), 1, 1, '') As [output];

结果:

output
John,Vicky,Sham,Anjli,Manish

答案 1 :(得分:2)

假设您的列名为NAME且表名为MYTABLE,您可以使用以下查询:

DECLARE @strTemp VARCHAR(MAX)

SET @strTemp = ''

SELECT @strTemp  = @strTemp + ISNULL(NAME,'') + ','
FROM MYTABLE

--Remove last comma
SET @strTemp = SUBSTRING(@strTemp ,1,LEN(@strTemp ) -1)

--Get Result
SELECT @strTemp 

您可以使用以下

过滤空记录
SELECT @strTemp  = @strTemp + NAME + ','
FROM MYTABLE
WHERE NAME IS NOT NULL