CaseWhen语句是一种条件语句,用于在SQL查询中根据不同的条件进行不同的操作。下面是一个可供参考的1000字的例子:
假设我们有一个名为"employees"的表,其中包含以下列:employee_id、first_name、last_name、birth_date和salary。
现在我们想根据员工的出生日期来对员工进行分类,并且根据其工资来计算不同类别的平均薪资。
首先,我们将使用CASE WHEN语句来创建一个新的列"age_category",根据出生日期来分类员工为"young"(年龄小于30岁)、"middle-aged"(年龄介于30岁和50岁之间)和"old"(年龄大于50岁)。
```sql
SELECT
employee_id,
first_name,
last_name,
birth_date,
salary,
CASE
WHEN birth_date > DATE_SUB(CURRENT_DATE(), INTERVAL 30 YEAR) THEN "young"
WHEN birth_date > DATE_SUB(CURRENT_DATE(), INTERVAL 50 YEAR) THEN "middle-aged"
ELSE "old"
END AS age_category
FROM
employees;
```
上述查询将返回一个具有以下列的结果集:employee_id、first_name、last_name、birth_date、salary和age_category。
接下来,我们将使用这个age_category列来计算不同类别的平均工资。
```sql
SELECT
age_category,
AVG(salary) AS average_salary
FROM
(
SELECT
employee_id,
first_name,
last_name,
birth_date,
salary,
CASE
WHEN birth_date > DATE_SUB(CURRENT_DATE(), INTERVAL 30 YEAR) THEN "young"
WHEN birth_date > DATE_SUB(CURRENT_DATE(), INTERVAL 50 YEAR) THEN "middle-aged"
ELSE "old"
END AS age_category
FROM
employees
) AS temp_table
GROUP BY
age_category;
```
上述查询将返回一个具有两列的结果集:age_category和average_salary。
这是一个简单的例子,展示了CASE WHEN语句的使用。根据实际需求,您可以根据不同的条件进行更复杂的操作,并使用更多的CASE WHEN子句。CASE WHEN语句在根据条件对数据进行分类、过滤和聚合等方面非常有用。
声明:免责声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,也不承认相关法律责任。如果您发现本社区中有涉嫌抄袭的内容,请发送邮件至:dm@cn86.cn进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载。