SQL Server选择结果为字符串,以','分隔

Asi*_*ami 9 sql-server

我有一个select返回一列的查询,我想将其转换为以','分隔的字符串行

Select name 
from tblUsers
Run Code Online (Sandbox Code Playgroud)

给出结果:

Row1; asieh
Row2:amir
Row3:safoora
Run Code Online (Sandbox Code Playgroud)

我想回来

Row1: asieh,amir,safoora
Run Code Online (Sandbox Code Playgroud)

Fab*_*ion 20

SQL小提琴

MS SQL Server 2008架构设置:

CREATE TABLE tblUsers
    ([name] varchar(7))
;

INSERT INTO tblUsers
    ([name])
VALUES
    ('asieh'),
    ('amir'),
    ('safoora')
;
Run Code Online (Sandbox Code Playgroud)

查询1:

    SELECT STUFF((
        select ','+ name 
        from tblUsers
        FOR XML PATH('')
        )
        ,1,1,'') AS names
Run Code Online (Sandbox Code Playgroud)

结果:

|              NAMES |
|--------------------|
| asieh,amir,safoora |
Run Code Online (Sandbox Code Playgroud)


Ker*_*mit 15

这是使用变量的解决方案:

DECLARE @out VARCHAR(MAX)
SELECT @out = COALESCE(@out+',' ,'') + name
FROM tblUsers
SELECT @lout
Run Code Online (Sandbox Code Playgroud)