sql中的速记IF语句

时间:2012-05-11 13:58:17

标签: sql sql-server

目前我有一个存储过程,它接受一个字符串

@vari as varchar(30)
if @vari is null 
    SELECT * FROM TABLE 
else 
    SELECT * FROM TABLE WHERE col = @vari
endif

有没有办法内联if语句,因此不会因为1个参数而声明2个选择?

2 个答案:

答案 0 :(得分:15)

SELECT * FROM TABLE WHERE (@vari is null or col = @vari)

答案 1 :(得分:3)

假设col永远不是NULL,您可以这样做:

select *
from table
where col = isnull(@vari, col)