SQL将ID连接成特定的顺序

Sim*_*ter 4 sql database sql-server

我有以下查询,它工作得很好,它将我的所有ID放在逗号分隔列表中.

DECLARE @tmp nvarchar(max)
SET @tmp = ''
        SELECT  @tmp = @tmp + cast(id as nvarchar(max)) + ', ' 
        FROM    dbo.property
Run Code Online (Sandbox Code Playgroud)

我想按字母顺序放置我的ID,但是当我通过p.Name添加顺序时,它只给出了我的前一个结果.

如何调整我的查询来完成此任务?

Gor*_*off 5

这真的不起作用?

DECLARE @tmp nvarchar(max);
SET @tmp = '';
SELECT  @tmp = @tmp + cast(id as nvarchar(max)) + ', ' 
FROM    dbo.property p
order by p.name;
Run Code Online (Sandbox Code Playgroud)

无论如何,您可以使用此方法:

select @tmp = stuff((select ', ', cast(id as nvarchar(max))
                     from db.property p
                     order by p.name
                     for xml path ('')
                    ), 1, 2, '');
Run Code Online (Sandbox Code Playgroud)