pab*_*blo 17 sql t-sql sql-server csv
我正在尝试使用SQL来构建逗号分隔的cat_id列表
代码是:
declare @output varchar(max)
set @output = null;
select @output = COALESCE(@output + ', ', '') + convert(varchar(max),cat_id)
Run Code Online (Sandbox Code Playgroud)
编辑:将''更改为null,STILL相同.但是我得到的输出是这样的:
, 66 , 23
Run Code Online (Sandbox Code Playgroud)
领先的逗号不应该在那里.我错过了什么?
Mat*_*ton 54
你是SQL 2005吗?随着Rob Farley的道具最近向我展示了这个:
SELECT stuff((
SELECT ', ' + cast(cat_id as varchar(max))
FROM categories
FOR XML PATH('')
), 1, 2, '');
Run Code Online (Sandbox Code Playgroud)
内部查询(带FOR XML PATH(''))选择以逗号分隔的类别ID列表,带有前导",".外部查询使用stuff函数删除前导逗号和空格.
我没有一个方便的SQL实例来测试它,所以它来自内存.您可能必须使用填充参数等,以使其按照您想要的方式工作.
| 归档时间: |
|
| 查看次数: |
42022 次 |
| 最近记录: |