2

我可以将最后两个选择查询合并为一个查询吗?

DECLARE @AttributeLink table(qeaId int,nQeaId int)

insert into @AttributeLink values(100,200)
insert into @AttributeLink values(101,201)
insert into @AttributeLink values(102,202)

declare @prmVar varchar(200)

select @prmVar = COALESCE(@prmVar + ',', '') + cast(nQeaId as varchar) 
    from @AttributeLink  
    where qeaId in (100, 101)   

select @prmVar
4

3 回答 3

0

怎么用

UNION / UNION ALL

桌子之间

那么你至少有一个结果。如果所选字段相同,则可以使用它。

看看这里:http: //msdn.microsoft.com/en-us/library/ms180026.aspx

于 2013-05-03T11:58:03.867 回答
0

如果你只是这样做呢?

select COALESCE(@prmVar + ',', '') + cast(nQeaId as varchar) 
from @AttributeLink  
where qeaId in (100, 101)  
于 2013-05-02T22:16:46.897 回答
0

设置@prmVar声明时的值,然后您可以使用选择一个。

DECLARE @AttributeLink table(qeaId int,nQeaId int)

insert into @AttributeLink values(100,200)
insert into @AttributeLink values(101,201)
insert into @AttributeLink values(102,202)

declare @prmVar varchar(200) = ( 
    
    
    stuff
        (
            (
                select ', ' + convert(nvarchar(max),nQeaId)
                from @AttributeLink al
                where al.qeaId in (
                    100
                    ,101
                )
                for xml path('')
            )
            ,1
            ,1
            ,''
        )

    ) 



select @prmVar
于 2013-05-02T18:45:16.370 回答