我想知道是否可以在WHERE
子句中更改運算符的情況下執行case語句。CASE WHERE更改運算符 - TSQL
我想要做的是過濾出基於布爾值的結果。
SELECT *
FROM table1
WHERE
CASE @Status
WHEN 1 THEN Name LIKE 'SOMETHING%'
WHEN 2 THEN Name NOT LIKE 'SOMETHING%'
END
我想知道這是否可能?
我想知道是否可以在WHERE
子句中更改運算符的情況下執行case語句。CASE WHERE更改運算符 - TSQL
我想要做的是過濾出基於布爾值的結果。
SELECT *
FROM table1
WHERE
CASE @Status
WHEN 1 THEN Name LIKE 'SOMETHING%'
WHEN 2 THEN Name NOT LIKE 'SOMETHING%'
END
我想知道這是否可能?
你可以不用一個SWITCH
表達式,像這樣:
SELECT *
FROM table1
WHERE
(@Status = 1 AND Name LIKE 'SOMETHING%')
OR (@Status = 2 AND Name NOT LIKE 'SOMETHING%')
由於@Status
可一次等於只有一件事,在OR
表達的一個組成部分,將決定WHERE
的結果條件。
令人驚歎,如此簡單,爲什麼我想不到那! –
邏輯位,我以前用過很多次,但邏輯很清楚。 –
可能重複的[使用CASE for WHERE field IN](http://stackoverflow.com/questions/14114815/using-case-for-where-field-in) –