• sql server case when


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

    简单case函数

    实例:CASE sex 
        when '1' then '男' 
        when '2' then'女' 
        else '其他'  
    end

    Case搜索函数 

    实例: CASE

         WHEN sex = '1' THEN '男' 
         WHEN sex = '2' THEN '女' 
         ELSE '其他'  END

      --还有一个需要注意的问题,Case函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略


    case when提高

    结合实例理解:

    (一)

    要求:依据表格求每个大洲的人口总和?

    SELECT SUM(population) as popul,
    CASE country
    WHEN '中国' THEN '亚洲'
    WHEN '印度' THEN '亚洲'
    WHEN '日本' THEN '亚洲'
    WHEN '美国' THEN '北美洲'
    WHEN '加拿大' THEN '北美洲'
    WHEN '墨西哥' THEN '北美洲'
    ELSE '其他' END as area
    FROM Cp
    GROUP BY area ----------执行报错:列名'area'无效。area是即将生成的结果集中的列名,结果集生成之前无效

    (二)

    要求:按照国家和性别分组?

    select country,sum(case when sex='1' then population else 0 end),
    sum (case when sex='2' then population else 0 end)
    from csp
    group by country;
    结果如下:

    (三)select case when 用法

    结果1:结果2:

    实例1

    SELECT    
      COUNT (CASE WHEN sex = 1 THEN 1
                  ELSE NULL
                  END) 男生数,
      COUNT (CASE WHEN sex = 2 THEN 1
                  ELSE NULL
                  END) 女生数
      FROM students GROUP BY grade;

    实例2

    SELECT    
      COUNT (CASE WHEN sex = 1 THEN 1 
                  ELSE NULL
                  END男生数,
      COUNT (CASE WHEN sex = 2 THEN 1
                  ELSE NULL
                  END女生数
      FROM students 

    (四)where case when用法

    结果1结果2

    实例1

    SELECT *
      FROM students a
      WHERE (CASE
               WHEN a.sex= 1 THEN 1
             ELSE 0

             END) =1 | 0     

    (五) group by case when用法

     结果

    SELECT
        CASE
           WHEN sex =1 THEN '1'
           ELSE NULL
        END sex,
        count(*)num
    FROM students

    GROUP BY
       CASE
          WHEN sex =1 THEN '1'
          ELSE NULL
       END

     

    要么生,要么死
  • 相关阅读:
    You need to use a Theme.AppCompat theme
    Objective-C中nil与release的区别与用法
    objective-c中自己创建的对象为什么不能调用release
    NSString类的相关用法
    [Bug-IOS]
    中国有什么旅游社交网站吗?
    om.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
    【剑指Offer学习】【面试题22:栈的压入、弹出序列】
    2-08. 用扑克牌计算24点(25) (ZJU_PAT 数学 枚举)
    在北京工作了两年,如今跳槽到了广州,社保公积金该怎样办理?
  • 原文地址:https://www.cnblogs.com/llljpf/p/6531641.html
Copyright © 2020-2023  润新知