[英]SQL OR within WHEN (in CASE)
奇怪的是我在網上找不到這個,我需要在case語句中的when子句中使用OR,例如:
SELECT type,color,brand,CASE type WHEN "foo" OR "BAR" OR "somethingelse" THEN SELECT ... FROM .... WHERE .... > ....;
我只是找不到讓它工作的方法,我已經嘗試將其封裝在parenthesys中:
SELECT type,color,brand,CASE type WHEN ("foo" OR "BAR" OR "somethingelse") THEN SELECT ... FROM .... WHERE .... > ....;
或者在方括號中:
SELECT type,color,brand,CASE type WHEN ["foo" OR "BAR" OR "somethingelse"] THEN SELECT ... FROM .... WHERE .... > ....;
問題是我有更多的選項要檢查,並為每個選項制作一個WHEN,這將使我的查詢超長。 沒什么,有什么建議嗎?
在CASE
如果沒有括號,則無法啟動單獨的SELECT ...並且可以使用以下內容進行OR
:
CASE WHEN type IN ("foo","BAR","somethingelse") THEN ... ELSE END
如果要從select
調用(子查詢)中獲取目標值,請在THEN
部分中執行此操作
... THEN ( SELECT col1 FROM tble WHERE ... ) ELSE END
case
有兩種形式只有一種可以使用Or
case x when val1 then result1 when val2 then result2 else defaultResult end
case when x = val1 then result1 When y = val2 then result2 Else DefaultResult end
,或更一般地說: case when [boolExp1] then reslt1 when [boolExp2] then reslt2 else defltReslt end
第二種形式可以使用Or
或任何其他布爾運算符(我記得Exists
除外)
case when x = val1 or y = val2 or z in (val3, val4, val5) then result1
else defaultResult end
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.