[英]SQL select rows conditionally using CASE expression
我正在練習一些SQL,我必須從數據庫中檢索有關員工(sal + comm)> 1700的所有信息。我知道這可以通過簡單的WHERE表達式完成,但我們正在練習CASE語句,所以我們需要這樣做。
我已經知道常規CASE如何工作以分配依賴於其他行值的新行值,但我不明白如何根據使用CASE表達式的條件選擇行。
這是我迄今取得的成就:
SELECT
CASE
WHEN (sal+comm) > 1700 THEN empno
END AS empno
FROM emp;
我知道這是錯的,但我被困在這里。 任何幫助或任何搜索和閱讀的資源將不勝感激,謝謝!
SELECT *
FROM emp
WHERE (CASE WHEN (sal+comm) > 1700 THEN 1
ELSE 0
END) = 1
CASE
語句將生成結果,您可以比較它或在其他操作中使用它。
在這種情況下,薪水取決於emp.job
SELECT *
FROM emp
WHERE CASE WHEN emp.job = 'DEVELOPER' THEN salary*1.5
WHEN emp.job = 'DB' THEN salary*2
END > 1700
解決你的情況是矯枉過正,但我想你可以包括其他情況。
SELECT *
FROM emp
WHERE CASE WHEN sal+comm > 1700 THEN 1
ELSE 0
END > 0
你想要一個WHERE子句。
SELECT empNo
FROM emp
WHERE sal+comm > 1700
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.