SQL之CASE WHEN用法是什么
在SQL中,CASE WHEN语句是一种条件表达式,用于根据满足的条件返回不同的值,它类似于其他编程语言中的if-else语句,CASE WHEN语句的基本语法如下:
CASE WHEN condition1 THEN result1 WHEN condition2 THEN result2 ... ELSE resultN END;
condition1、condition2等为判断条件,result1、result2等为对应的返回结果,当满足某个条件时,将返回该条件的对应结果,如果没有满足任何条件,将返回ELSE后的结果,如果没有提供ELSE部分,且没有满足任何条件,则返回NULL。
下面我们通过一个简单的例子来说明CASE WHEN的用法,假设我们有一个名为employees的表,包含以下字段:id(员工ID)、name(员工姓名)、salary(员工薪水),我们想要根据员工的薪水等级给他们分配不同的奖金,可以使用CASE WHEN语句实现。
SELECT id, name, salary, CASE WHEN salary < 5000 THEN '低' WHEN salary >= 5000 AND salary < 10000 THEN '中' ELSE '高' END AS bonus_level FROM employees;
在这个例子中,我们使用了CASE WHEN语句来判断员工的薪水等级,并将结果作为bonus_level列返回,当薪水小于5000时,bonus_level为'低';当薪水在5000到10000之间时,bonus_level为'中';其他情况下,bonus_level为'高'。
接下来,我们来看一些与本文相关的问题与解答:
问题1:CASE WHEN语句可以处理多个条件吗?
答:是的,CASE WHEN语句可以处理多个条件,只需在WHEN后面依次列出多个条件即可。
SELECT id, name, salary, CASE WHEN salary < 5000 THEN '低' WHEN salary >= 5000 AND salary < 10000 THEN '中' WHEN salary >= 10000 THEN '高' END AS bonus_level FROM employees;
问题2:CASE WHEN语句中的条件可以是表达式吗?
答:是的,CASE WHEN语句中的条件可以是表达式,我们可以根据员工的年龄来判断他们的奖金等级:
SELECT id, name, age, salary, CASE WHEN age < 30 THEN '低' WHEN age >= 30 AND age < 60 THEN '中' ELSE '高' END AS bonus_level FROM employees;
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/224831.html