5

目前我有一个存储过程,它需要一个字符串

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

有什么方法可以内联 if 语句,从而不会因为 1 个参数而声明 2 个选择?

4

2 回答 2

15
SELECT * FROM TABLE WHERE (@vari is null or col = @vari)
于 2012-05-11T14:00:15.023 回答
3

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

select *
from table
where col = isnull(@vari, col)
于 2012-05-11T14:04:53.220 回答