sql case when then
时间: 2023-05-31 16:19:46 浏览: 133
sql 中 case when 语法使用方法
### 回答1:
SQL中的CASE WHEN THEN语句是一种条件语句,用于根据特定条件返回不同的结果。它的基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default_result
END
其中,condition1、condition2等是条件表达式,result1、result2等是对应的结果。如果所有条件都不满足,则返回默认结果default_result。
### 回答2:
SQL 中的 CASE WHEN THEN 语句用于在查询结果中根据条件返回不同的值。它是一个非常强大和灵活的工具,可以用来实现一系列的状态、过滤和其他操作。语法如下:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionn THEN resultn
ELSE elseresult
END
```
它的基本构成部分是 `CASE`,后跟多个 `WHEN` 分支和一个 `ELSE` 分支。当 `CASE` 满足一个 `WHEN` 分支的条件时,它就会返回该分支对应的结果。如果没有任何 `WHEN` 分支被满足,它会返回 `ELSE` 分支的结果。如果没有指定 `ELSE` 分支,则返回 `NULL`。
每个 `WHEN` 分支由一个条件 `condition` 和一个结果 `result` 组成。当 `condition` 成立时,`result` 就会被返回。如果 `condition` 不成立,则会检查下一个 `WHEN` 分支,直到找到一个满足条件的 `result` 或到达 `ELSE` 分支为止。
例如,下面的查询使用 `CASE` 语句根据员工的工资级别将员工分组:
```
SELECT
CASE
WHEN salary < 50000 THEN '低薪'
WHEN salary < 100000 THEN '中薪'
ELSE '高薪'
END AS salary_level,
COUNT(*) AS num_employees
FROM employee
GROUP BY salary_level;
```
在这个查询中,当工资小于 50000 时,员工被分为“低薪”组;当工资介于 50000 和 100000 之间时,员工被分为“中薪”组;否则,员工被分为“高薪”组。最终,这个查询会返回每个工资级别的员工数量。
总的来说,`CASE WHEN THEN` 语句是 SQL 中一个非常灵活和实用的工具,可以用来实现复杂的逻辑和操作。熟练掌握它可以让 SQL 查询更加精细和高效。
### 回答3:
SQL中的CASE WHEN THEN语句用于根据条件在查询语句中进行逻辑判断并生成新的列。
其基本语句为:
```
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
ELSE default result
END
```
其中,condition是条件表达式,result是对应的结果表达式,ELSE可以指定默认结果,当条件都不满足时,返回默认结果。一个CASE语句中可以有多个WHEN语句,对应多个条件,如果满足某个条件,返回对应的结果。
例:
有一个产品表,其中有产品编号、名称、价格和销量。现在需要查询产品的名称、单价和总价格(销量*单价),对于销量大于1000的产品,单价打9折。
语句如下:
```
SELECT name, price,
CASE WHEN sales > 1000 THEN price * 9 * sales
ELSE price * sales
END total_price
FROM product;
```
上述语句中用CASE WHEN判断条件,满足销量大于1000,则将单价乘以9折之后再乘以销量得到总价;否则直接将单价乘以销量得到总价。可以看到,CASE WHEN THEN语句能够在查询语句中方便地进行条件判断,并根据不同的条件生成对应的列,对于一些需要根据条件动态计算的数据分析任务非常有用。
阅读全文