我有以下变量
Declare @test1 int,
@test2 int,
@test3 int
有没有办法根据表中的行填充上面的变量?目前我正在这样做。
select @test1 = value from tables where somecode = 'test1'
select @test2 = value from tables where somecode = 'test2'
select @test3 = value from tables where somecode = 'test3'
有更好的方法吗?即在一个单一的选择陈述中?
这样的事情有可能吗?
SELECT @test1 = CASE code WHEN 'test1' THEN value END,
@test2 = CASE code WHEN 'test2' THEN value END
FROM myTable
答案 0 :(得分:1)
select
@test1 = max(case when <testcolumn> = 'test1' then col1 else null end),
@test2 = max(case when <testcolumn> = 'test2 ' then col2 else null end),
...
from
<your table>
where
test column in ('test1','test2')
根据您的数据,您可能需要选择不同的或某种类型的聚合才能使其完全正确。