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