我正在尝试使用 SQL 构建以逗号分隔的 cat_id 列表
代码是:
declare @output varchar(max)
set @output = null;
select @output = COALESCE(@output + ', ', '') + convert(varchar(max),cat_id)
编辑:将 '' 更改为 null,仍然相同。 但我得到的输出是这样的:
, 66 , 23
不应出现前导逗号。我错过了什么?
最佳答案
您使用的是 SQL 2005 吗?使用 Prop Rob Farley谁最近向我展示了这个:
SELECT stuff((
SELECT ', ' + cast(cat_id as varchar(max))
FROM categories
FOR XML PATH('')
), 1, 2, '');
内部查询(使用 FOR XML PATH('')
)选择以逗号分隔的类别 ID 列表,并以“,”开头。外部查询使用 stuff函数删除前导逗号和空格。
我没有方便的 SQL 实例来测试它,所以它是从内存中获得的。您可能需要调整一些参数等才能使其完全按照您想要的方式工作。
关于sql - 建立一个逗号分隔的列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1564980/