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  end),
sum (case when sex='2' then population else end)
from csp
group by country;
结果如下:

(三)select case when 用法

结果1:结果2:

实例1

SELECT    
  COUNT (CASE WHEN sex = THEN 1
              ELSE NULL
              END) 男生数,
  COUNT (CASE WHEN sex = THEN
              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 = THEN '1'
       ELSE NULL
    END sex,
    count(*)num
FROM students

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

sql server case when的更多相关文章

  1. sql server Case when 的用法

    sql Case 仅仅返回第一个符合条件的值,剩下的Case部分将会被自动忽略. Case 的使用有两种格式:简单Case函数和Case搜索函数. 简单Case 函数: Case sex when ' ...

  2. SQL Server - case when...then...else...end

    Case具有两种格式.简单Case函数和Case搜索函数. --简单Case函数 CASE sex ' THEN '男' ' THEN '女' ELSE '其他' END --Case搜索函数 ' T ...

  3. SQL Server case表达式的用法

    ★CASE表达式是一个标量表达式,它基于条件逻辑来返回一个值.因为CASE是一个标量表达式,所以它可以应用在SELECT.WHERE.HAVING以及ORDER BY子句中. CASE表达式有两种格式 ...

  4. SQL Server case when 日期字符串转换 多表查询 嵌套子查询

    select distinct stu.*, dbo.GetClassNameByStudentCode(stu.Code) as ClassName, dbo.GetCourseNameByStud ...

  5. sql server case when 判断为空

    代码如下 select distinct G.* ,(select BUSINESS_NAME from BusinessInfo where BusinessInfo.BUSINESS_BID=G. ...

  6. SQL SERVER:CASE判断空,错误一例

     -----错误判断------------------------------------------------------------------------------------ SELEC ...

  7. sql server case

    use mytest go exec p_city 2,4 exec p_city_cnt 2,3 select stuff((select ',' + city_id from cities for ...

  8. SQL Server CASE语句中关于Null的处理

    问: 从数据表中选择一个字段“field”,如果“field”值是1或NULL就赋值为1,其它情况为0,该怎么写啊?这样写对不对啊?(CASE fieldWHEN '1' THEN '1'WHEN N ...

  9. SQL Server case when 实现分类汇总

    case when 实现分类汇总

随机推荐

  1. 微信小程序支持windows PC版了

    微信 PC 版新版本中,支持打开聊天中分享的小程序,开发者可下载安装微信 PC 版内测版本进行体验和适配.最新版微信开发者工具新增支持在微信 PC 版中预览小程序 查看详情 微信 PC 版内测版下载地 ...

  2. beta week 2/2 Scrum立会报告+燃尽图 03

    此作业要求参见https://edu.cnblogs.com/campus/nenu/2019fall/homework/9956 一.小组情况 组长:贺敬文组员:彭思雨 王志文 位军营 徐丽君队名: ...

  3. react 脚手架 及路由和 redux

    前提是我们需要下载 nodejs 使用 npm 下载 react 的脚手架,react-router-dom,redux 全局下载 react 的脚手架:npm i create-react-app ...

  4. vue——父组件调用子组件

    <template> <div> child1 </div> </template> <script> export default { n ...

  5. centos7 - mysql修改密码

    set password for 'root'@'localhost'=password('MyNewPass4!'); mysql5.7默认安装了密码安全检查插件(validate_password ...

  6. C# 防火墙操作之开启与关闭

    通过代码操作防火墙的方式有两种:一是代码操作修改注册表启用或关闭防火墙:二是直接操作防火墙对象来启用或关闭防火墙.不论哪一种方式,都需要使用管理员权限,所以操作前需要判断程序是否具有管理员权限. 1. ...

  7. javascript 生成img标签的3种方式(对象、方法、html)

    <div id="d1"></div> <script> //HTML function a(){ document.getElementByI ...

  8. react-native命令初始化项目后可借助webstrom快速运行与调试项目

    利用webstorm工具打开RN项目,点击 然后添加 然后进行配置 最后,点击apply ,OK完成 后期运行项目直接点击:

  9. pandas之时间序列(data_range)、重采样(resample)、重组时间序列(PeriodIndex)

    1.data_range生成时间范围 a) pd.date_range(start=None, end=None, periods=None, freq='D') start和end以及freq配合能 ...

  10. OpenStack 节点重启后无法联网的问题

    问题 五一归来,大量服务器被重启了,其中一台服务器失联了.通过远程桌面登录之后发现服务器的 IP 地址是 "正常" 的,可以 Ping 通自己的 IP,但 Ping 不同网关. 解 ...