MySQL case

Case具有两种格式。简单Case函数和Case搜索函数。 

1、Case简单函数

CASE sex 
         WHEN '1' THEN '' 
         WHEN '2' THEN '' 
ELSE '其他' END 

2、Case搜索函数 

CASE WHEN sex = '1' THEN '' 
         WHEN sex = '2' THEN '' 
ELSE '其他' END 

下面用一些实例学习case:

存在Table:

/*将性别男、女分别用0、1替换*/

SELECT
    id,
    CASE 
        WHEN sex = '' THEN 0
        WHEN sex = '' THEN 1 END sex ,
    score
FROM c1;

/*将成绩分为小于60 差,60~80 中,80~90良,90以上优*/

SELECT * ,
    CASE 
        WHEN score<60 THEN ''
        WHEN score>=60 AND score<80 THEN ''
        WHEN score>=80 AND score<90 THEN ''
        WHEN score>=90  THEN '' END level
FROM c1;

/*将成绩等级分为四列*/
SELECT id, sex,score,
    CASE  WHEN score<60 THEN '' END AS level1,
    CASE  WHEN score>=60 AND score<80 THEN '' END AS level2,
    CASE  WHEN score>=80 AND score<90 THEN '' END AS level3,
    CASE  WHEN score>=90  THEN ''END  AS level4
FROM c1;

/*按照性别计算各成绩等级中的数量*/

SELECT sex,
    SUM(CASE WHEN score<60 THEN 1 ELSE 0 END) AS '',
    SUM(CASE WHEN score>=60 AND score<80 THEN 1 ELSE 0 END) AS '',
    SUM(CASE WHEN score>=80 AND score<90 THEN 1 ELSE 0 END) AS '',
    SUM(CASE WHEN score>=90 THEN 1 ELSE 0 END) AS ''
FROM c1
GROUP BY sex;

原文地址:https://www.cnblogs.com/RebeccaG/p/11935113.html