开发者代码

促销活动、技术干货、问题解答、技术讨论,学习,成长,分享,共建

casewhenthen

2023-12-21 08:12:21 点击:91
casewhenthen
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进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。本站原创内容未经允许不得转载。
  • 7x24

    在线售后支持

  • 10

    +

    10年互联网服务经验

  • 300

    +

    全国300余家服务机构

  • 70000

    +

    与70000余家企业客户携手

logo
祥云平台主营业务:品牌型网站建设,高端型网站建设, 外贸型网站建设,营销型网站建设,网站优化, 开发类网站,企业网络营销,搜索引擎推广,微信小程序, 企业邮箱,短视频运营等。

服务热线

400-007-8608

公司:

苏州祥云平台信息技术有限公司
苏州华企立方信息技术有限公司

地址:江苏省昆山市昆太路530号祥和国际大厦15-16层

返回顶部