Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
SQL使用大小写表达式有条件地选择行_Sql_Oracle_Case - Fatal编程技术网

SQL使用大小写表达式有条件地选择行

SQL使用大小写表达式有条件地选择行,sql,oracle,case,Sql,Oracle,Case,我正在练习一些SQL,我必须从数据库中检索(sal+comm)>1700的员工的所有信息。我知道这可以通过一个简单的WHERE表达式来实现,但是我们正在练习CASE语句,所以我们需要这样做 我已经知道常规CASE如何根据其他行值分配新行值,但我不知道如何使用CASE表达式根据条件选择行 这就是我迄今为止所取得的成就: SELECT CASE WHEN (sal+comm) > 1700 THEN empno END AS empno FROM emp; 我

我正在练习一些SQL,我必须从数据库中检索(sal+comm)>1700的员工的所有信息。我知道这可以通过一个简单的WHERE表达式来实现,但是我们正在练习CASE语句,所以我们需要这样做

我已经知道常规CASE如何根据其他行值分配新行值,但我不知道如何使用CASE表达式根据条件选择行

这就是我迄今为止所取得的成就:

SELECT
    CASE
        WHEN (sal+comm) > 1700 THEN empno
    END AS empno
FROM emp;

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

CASE语句将生成一个结果,您可以对其进行比较或将其用于其他操作

在这种情况下,工资取决于emp工作

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

@Elias明确表示,他知道如何在一个简单的
WHERE
子句中实现这一点,但他想练习
CASE
SELECT empNo
FROM emp
WHERE sal+comm > 1700