假设我们有一个简单的查询,如下所示:
SELECT x FROM t WHERE t.y = z
如果结果集中只有一条记录,我想将变量@v设置为该值。如果我们有两个或多个记录,我希望结果用逗号和空格分隔。编写此T-SQL代码的最佳方法是什么?
@v
例子:
1条记录的结果集:
Value1
2条记录的结果集:
Value1, Value2
3条记录的结果集:
Value1, Value2, Value3
这将为您提供以逗号分隔的列表中的值列表
create table #temp ( y int, x varchar(10) ) insert into #temp values (1, 'value 1') insert into #temp values (1, 'value 2') insert into #temp values (1, 'value 3') insert into #temp values (1, 'value 4') DECLARE @listStr varchar(255) SELECT @listStr = COALESCE(@listStr+', ', '') + x FROM #temp WHERE #temp.y = 1 SELECT @listStr as List drop table #temp