小编Vit*_*mir的帖子

T-SQL 中 WHERE 子句中的多个 IF 子句

我有一个包含三列的表 #t1,其中一列名为root_symbol.

我想从 table #t1 中选择所有满足 variable 条件的元素@root

但是,变量@root可以有四个不同的值,因此我想where根据声明的变量值动态选择语句应用的过滤器。

declare @root integer
set @root = 1

select * from #t1
where root_symbol in
case when @root = 1 then ('ES')
        when @root = 2 then ('EW', 'EW1', 'EW2', 'EW3', 'EW4') 
        when @root = 3 then ('E1C', 'E2C', 'E3C', 'E4C', 'E5C') 
        when @root = 4 then ('E1A', 'E2A', 'E3A', 'E4A', 'E5A') 
end
Run Code Online (Sandbox Code Playgroud)

我已经看到使用case when,但不是使用值匹配条件完成的in

另一种方法是创建一个 if 语句,其中包含四个不同的 select 语句,但是在这里我也不确定如何处理 …

sql t-sql sql-server if-statement

1
推荐指数
1
解决办法
76
查看次数

标签 统计

if-statement ×1

sql ×1

sql-server ×1

t-sql ×1