• [织梦吧]唯一域名:www.dedecms8.com,织梦DedeCMS学习平台.

当前位置: > 编程与数据库 > mysql教程 >

case when用法例子 SQL中的CASE WHEN使用方法(2)

来源: www.dedecms8.com 编辑:织梦吧 时间:2014-06-23点击:

                WHEN '中国'     THEN '亚洲'      
    
                WHEN '印度'     THEN '亚洲'      
    
                WHEN '日本'     THEN '亚洲'      
    
                WHEN '美国'     THEN '北美洲'      
    
                WHEN '加拿大'  THEN '北美洲'      
    
                WHEN '墨西哥'  THEN '北美洲'      
    
        ELSE '其他' END;      
    
同样的,我们也可以用这个方法来判断工资的等级,并统计每一等级的人数。SQL代码如下;     
    
SELECT      
    
        CASE WHEN salary <= 500 THEN '1'      
    
             WHEN salary > 500 AND salary <= 600  THEN '2'      
    
             WHEN salary > 600 AND salary <= 800  THEN '3'      
    
             WHEN salary > 800 AND salary <= 1000 THEN '4'      
    
        ELSE NULL END salary_class,      
    
        COUNT(*)      
    
FROM    Table_A      
    
GROUP BY      
    
        CASE WHEN salary <= 500 THEN '1'      
    
             WHEN salary > 500 AND salary <= 600  THEN '2'      
    
             WHEN salary > 600 AND salary <= 800  THEN '3'      
    
             WHEN salary > 800 AND salary <= 1000 THEN '4'      
    
        ELSE NULL END;      
    
二,用一个SQL语句完成不同条件的分组。     
    
有如下数据     
    
国家(country)性别(sex)人口(population)     
    
中国1 340      
    
中国2 260      
    
美国1 45      
    
美国2 55      
    
加拿大1 51      
    
加拿大2 49      
    
英国1 40      
    
英国2 60      
    
按照国家和性别进行分组,得出结果如下     
    
国家男女     
    
中国340 260      
    
美国45 55      
    
加拿大51 49      
    
英国40 60      
    
普通情况下,用UNION也可以实现用一条语句进行查询。但是那样增加消耗(两个Select部分),而且SQL语句会比较长。     
    
下面是一个是用Case函数来完成这个功能的例子     
    
SELECT country,      
    
       SUM( CASE WHEN sex = '1' THEN      
    
                      population ELSE 0 END),  --男性人口     
    
       SUM( CASE WHEN sex = '2' THEN      
标签: sql case when

About D8

  • ©2014 织梦吧(d8) DedeCMS学习交流平台
  • 唯一网址 www.DedeCMS8.com 网站地图
  • 联系我们 1170734538@qq.com ,  QQ