我有以下查询效果很好,它将我所有的 id 放在逗号分隔的列表中。
DECLARE @tmp nvarchar(max)
SET @tmp = ''
SELECT @tmp = @tmp + cast(id as nvarchar(max)) + ', '
FROM dbo.property
我想按字母顺序排列我的 ID,但是当我按 p.Name 添加顺序时,它只会给出我的前一个结果。
我怎样才能调整我的查询来完成这个?
我有以下查询效果很好,它将我所有的 id 放在逗号分隔的列表中。
DECLARE @tmp nvarchar(max)
SET @tmp = ''
SELECT @tmp = @tmp + cast(id as nvarchar(max)) + ', '
FROM dbo.property
我想按字母顺序排列我的 ID,但是当我按 p.Name 添加顺序时,它只会给出我的前一个结果。
我怎样才能调整我的查询来完成这个?
这真的不行吗?
DECLARE @tmp nvarchar(max);
SET @tmp = '';
SELECT @tmp = @tmp + cast(id as nvarchar(max)) + ', '
FROM dbo.property p
order by p.name;
在任何情况下,您都可以使用此方法:
select @tmp = stuff((select ', ', cast(id as nvarchar(max))
from db.property p
order by p.name
for xml path ('')
), 1, 2, '');
解决方案:
SELECT (cast(ID as nvarchar(max)) + ', ') AS [text()]
FROM dbo.property
ORDER BY ID
FOR XML PATH ('')