簡體   English   中英

具有嵌套多個條件的 WHERE 子句

[英]WHERE clause with nested multiple conditions

我想用WHERE子句中的條件檢索數據。
這是我的表格,如下所示:

Name   Location    Age
----------------------
AAA     Bhuj       24
BBB     Mumbai     22
CCC     Bhuj       18
DDD     Bhuj       27
EEE     Mumbai     26

我在WHERE子句中的條件是:
if location = 'Bhuj' then Age>20 else if location = 'Mumbai' then Age>25

我正在嘗試這段代碼來實現這一點:

SELECT * FROM testing
WHERE 
CASE Location WHEN 'Bhuj' THEN Age>20
              WHEN 'Mumbai' THEN Age>25
END;

此代碼適用於 MySQL(請參閱此 SQLFiddle ),但不適用於 SQL Server(請參閱此 SQLFiddle )並給出以下錯誤:

'>' 附近的語法不正確。:SELECT * FROM testing WHERE case Location When 'Bhuj' then Age>20 When 'Mumbai' then Age>25 end

有什么建議嗎?

我認為這就是您要實現的目標

   SELECT * 
   FROM testing
   WHERE (Location = 'Bhuj' AND Age>20) 
        OR (Location = 'Mumbai' AND Age>25)

檢查SQLFiddle

更新:

Case 語句返回一個值,其中不能有條件。

SELECT * FROM testing 
WHERE  
Age > case Location When 'Bhuj' then 20 
              When 'Mumbai' then 25 
              end

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM