SQL使用CASE表达式有条件地选择行

Eli*_*cia 1 sql oracle case

我正在练习一些SQL,我必须从数据库中检索有关(sal + comm)> 1700的员工的所有信息。我知道可以使用简单的WHERE表达式来完成此操作,但是我们正在练习CASE语句,因此我们需要这样做。

我已经知道常规CASE如何工作以分配依赖于其他行值的新行值,但是我不了解如何使用CASE表达式根据条件选择行。

到目前为止,这是我实现的目标:

SELECT
    CASE
        WHEN (sal+comm) > 1700 THEN empno
    END AS empno
FROM emp;
Run Code Online (Sandbox Code Playgroud)

我知道这是错误的,但是我被困在这里。任何帮助或任何资源搜索和阅读将不胜感激,谢谢!

小智 5

SELECT *
FROM emp
WHERE (CASE WHEN (sal+comm) > 1700 THEN 1
            ELSE 0
       END) = 1
Run Code Online (Sandbox Code Playgroud)