(sql when case then) SQL中case when用法及使用案例详解
SQL 中的 CASE WHEN
是一种条件表达式,用来在查询中基于特定的条件返回不同的结果。它类似于编程中的 if-else
语句。CASE
表达式既可以用在 SQL 语句的 select 部分,也可以用在 where、order by 等子句中。
基本语法如下:
CASE
WHEN condition1 THEN result1
WHEN condition2 THEN result2
...
WHEN conditionN THEN resultN
ELSE default_result
END
以下是一个使用 CASE WHEN
的例子,用来根据一个员工的销售业绩给出不同的评级(A, B, C):
SELECT EmployeeID,
Sales,
CASE
WHEN Sales > 20000 THEN 'A'
WHEN Sales BETWEEN 10000 AND 20000 THEN 'B'
WHEN Sales < 10000 THEN 'C'
ELSE 'No Rating' -- 当没有符合以上任何条件的情况
END AS Rating
FROM SalesRecords;
在这个例子中,如果员工销售额超过 20000,评级就是 ‘A’;销售额在 10000 到 20000 之间的就是 ‘B’;销售额小于 10000 的就是 ‘C’;如果员工的销售额没有符合以上任何条件,就是 ‘No Rating’。
CASE WHEN
也可以嵌套使用,就像嵌套的if-else
语句那样,但是要注意复杂性和可读性。
案例:给图书馆的书分级,假设根据图书的借阅次数来分为热门书籍和非热门书籍。
SELECT BookID,
Title,
BorrowedTimes,
CASE
WHEN BorrowedTimes > 100 THEN 'Popular Book'
ELSE 'Regular Book'
END AS Popularity
FROM LibraryBooks;
如果书被借阅超过 100 次,则为 ‘Popular Book’;否则,为 ‘Regular Book’。
使用 CASE WHEN
语句能让你的 SQL 查询更加强大和灵活,特别在数据分析和生成报表时非常有用。在开发中,它经常被用于对数据进行分类、执行条件逻辑计算字段,以及在 join 查询中处理复杂逻辑等。
(微信小程序弹窗) 微信小程序四种弹窗方式实例 微信小程序中的四种弹窗方式 全网首发(图文详解1)
(vue hover) Vue的hover/click事件如何动态改变颜色和背景色 Vue 中实现鼠标悬停和点击时改变元素颜色的解决方案 全网首发(图文详解1)