假设我们有一个简单的查询:
SELECT x FROM t WHERE t.y = z
如果我们在结果集中有一条记录,我想将变量@v设置为该值.如果我们有两个或更多的记录,我希望结果由逗号和空格隔开.写这个T-sql代码的最好办法是什么?
例:
结果集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