CASE表达式

Posted SailorG

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了CASE表达式相关的知识,希望对你有一定的参考价值。

知识点:

● CASE表达式分为简单CASE表达式搜索CASE表达式两种。搜索CASE表达式包含简单CASE表达式的全部功能。
● 虽然CASE表达式中的ELSE子句可以省略,但为了让 SQL语句更加容易理解,还是希望大家不要省略。
CASE表达式中的END不能省略
● 使用CASE表达式能够将SELECT语句的结果进行组合。
● 虽然有些 DBMS提供了各自特有的CASE表达式的简化函数,例如Oracle中的DECODE和mysql中的IF,等等,但由于它们并非通用的函数,功能上也有些限制,因此有些场合无法使用。

CASE WHEN <求值表达式> THEN <表达式>
 WHEN <求值表达式> THEN <表达式>
 WHEN <求值表达式> THEN <表达式>
 . . .
 ELSE <表达式>
END  [as 字段别名]

整个case语句只是1列值。分支语句。

 

组合使用:

SUM ( CASE

                     WHEN product_type = \'衣服\'  THEN sale_price

                     ELSE 0 

                     END

        ) AS sum_price_clothes,

分支少的时候可以使用sum(if(判断条件,真时返回值,假时返回值))替换

-----------------------------------------------------------

搜索CASE表达式与简单CASE表达式对比

-- 使用搜索CASE表达式的情况(重写代码清单6-41)
SELECT product_name,
       CASE WHEN product_type = \'衣服\' 
            THEN \'A :\' | |product_type
            WHEN product_type = \'办公用品\' 
            THEN \'B :\' | |product_type
            WHEN product_type = \'厨房用具\' 
            THEN \'C :\' | |product_type
            ELSE NULL
            END AS abc_product_type
FROM Product;


-- 使用简单CASE表达式的情况 SELECT product_name, CASE product_type WHEN \'衣服\' THEN \'A :\' | | product_type WHEN \'办公用品\' THEN \'B :\' | | product_type WHEN \'厨房用具\' THEN \'C :\' | | product_type ELSE NULL END AS abc_product_type FROM Product;

简单CASE表达式,虽然看上去简化了书写,但是想要在 WHEN 子句中指定不同列时,简单 CASE 表达式就无能为力了。

 

以上是关于CASE表达式的主要内容,如果未能解决你的问题,请参考以下文章

js中使用Switch

JavaScript核心语法学习部分

分支结构if

JavaScript------- Switch 语句

在这个 spark 代码片段中 ordering.by 是啥意思?

微商进货返利系统代码解析