目前,我有一個存儲過程,它需要一個字符串速記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會比'或'條件產生更好的執行計劃。 –