case when的作用:1、条件判断;2、数据转换;3、复杂逻辑处理。
条件判断、数据转换、复杂逻辑处理
作用
CASE WHEN语句在sql中的作用主要是进行条件判断。 它可以在查询过程中对数据进行分类、转换或根据特定条件计算结果,类似于编程中的if-else语句。通过使用CASE WHEN,可以在查询时对数据进行复杂的逻辑处理,比如根据不同的条件返回不同的结果,或者进行数据转换。
语法和用法
CASE WHEN的语法有多种形式,但最常用的是以下两种:
简单条件比较:用于比较等于、不等于、范围等条件。遇到第一个满足条件的表达式即返回结果,如果没有满足的条件则返回else里的结果,如果没有else则返回NULL。
表达式比较:用于更复杂的逻辑判断,不管条件是否满足,都会返回else里的结果,如果没有else则返回NULL。
示例应用场景
销售数据分析:可以计算今年和去年销售数量的差异。例如,第一个CASE WHEN语句将今年的销售数量作为“this_year_sales”列的值;第二个CASE WHEN语句将去年的销售数量作为“last_year_sales”列的值;第三个CASE WHEN语句计算今年和去年销售数量的差异。
订单优惠处理:在电商平台上,可以根据订单金额和商品数量给予不同的折扣。例如,如果订单金额大于100且订单中商品数量大于5个,则打8折;否则,如果订单金额大于100且订单中商品数量大于5个,则打8折;否则,如果订单金额大于500,则打9折。
数据转换:在处理数据时,可以根据特定条件将数据转换为不同的格式或类别。例如,将某个字段的值根据其范围分为“高”、“中”、“低”三个等级。