簡體   English   中英

SQL使用CASE表達式有條件地選擇行

[英]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.

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