目前,我有一个存储过程,它需要一个字符串速记IF语句在SQL
@vari as varchar(30)
if @vari is null
SELECT * FROM TABLE
else
SELECT * FROM TABLE WHERE col = @vari
endif
有什么办法内联的if语句,因此不会宣布2选择只是因为1个PARAM的?
目前,我有一个存储过程,它需要一个字符串速记IF语句在SQL
@vari as varchar(30)
if @vari is null
SELECT * FROM TABLE
else
SELECT * FROM TABLE WHERE col = @vari
endif
有什么办法内联的if语句,因此不会宣布2选择只是因为1个PARAM的?
假设col
是从来没有空,你可以这样做:
select *
from table
where col = isnull(@vari, col)
你也可以用case语句做到这一点,它不是短以下,但在某些情况下,它是更好的答案。 – Purplegoldfish
我不会改变你的代码,因为在大多数情况下,sql会比'或'条件产生更好的执行计划。 –