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. C++入门经典-例7.5-对象的指针,函数指针调用类成员

    1:指向相应对象的指针就是对象的指针,它的生明方法与其他类型一样,如下: 类名 *p; 类的指针可以调用它所指向对象的成员.形式如下: p->类成员; 2:代码如下: (1)cat.h #inc ...

  2. 一、基础篇--1.2Java集合-HashMap死循环问题

    为什么HashMap会出现死循环 首先,我们知道java的HashMap不是线程安全的.多线程下应该使用ConcurrentHashMap. HashMap底层是基于动态数组和单向链表(JDK1.7, ...

  3. tab切换效果 网站中的图片自动切换

    网站中的图片自动切换 今天上一套tab切换效果的代码 动图就自己实现吧! 下面贴HTML代码,大体分两部分,图片div和按钮div,代码很容易看懂~ <!DOCTYPE html> < ...

  4. flask_sqlalchemy的session线程安全源码解读

    flask_sqlalchemy是如何在多线程中对数据库操作不相互影响 数据库操作隔离 结论:使用scoped_session实现数据库操作隔离 flask的api.route()接收一个请求,就会创 ...

  5. [spring]AOP(切面)编程

    AOP 即 Aspect Oriented Program 面向切面编程 首先,在面向切面编程的思想里面,把功能分为核心业务功能,和周边功能. 所谓的核心业务,比如登陆,增加数据,删除数据都叫核心业务 ...

  6. Session中的方法概述

    一.操作实体对象 delete()把持久化或游离转为删除状态 save()把临时状态变为持久化状态(交给Sessioin管理) saveOrUpdate()把临时或游离状态转为持久化状态 update ...

  7. Laravel6.0 使用 Jwt-auth 实现多用户接口认证

    后台管理员认证 (admins 表) 首先创建数据库和表 (admins),在 routes/api.php 中,写上如下路由并创建对应控制器和方法. Route::namespace('Api')- ...

  8. office web apps安装部署,配置https,负载均衡(四)安装office web apps相关软件

    前提条件: 1.一台windows server 2008R2服务器,并且已经配置了域: 服务器连接域控制器的相关文档,请查看上一篇文章: office web apps安装部署,配置https,负载 ...

  9. SqlServer try catch 捕获触发器\存储过程异常,结合 transaction 事务

    SoEasy~,贴上代码看所有 ALTER trigger [dbo].[tgr_SG_Gathering_update] on [dbo].[SG_Gathering] for update --更 ...

  10. 导包、时间模块【TIME、CALENDAR DATETIME】、SYS、OS, OS.PATH模块、项目开放周期&规范

    导包 1.不考虑包的情况下直接from...直接导入文件夹下的具体模块 2. if  __name__ == '__ma__'    # 自执行 if  __name__ == '模块名'    # ...