如何用它们之间的逗号列出T-SQL结果?

假设我们有一个简单的查询
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

相关文章

SELECT a.*,b.dp_name,c.pa_name,fm_name=(CASE WHEN a.fm_n...
if not exists(select name from syscolumns where name=&am...
select a.*,pano=a.pa_no,b.pa_name,f.dp_name,e.fw_state_n...
要在 SQL Server 2019 中设置定时自动重启,可以使用 Window...
您收到的错误消息表明数据库 'EastRiver' 的...
首先我需要查询出需要使用SQL Server Profiler跟踪的数据库标...