SQL Case

在数据库中,对数据进行比对,有两种用法,

第一种:不对任何列进行条件判断

SELECT
Student_ID  AS 学号,English AS 英语成绩,
CASE
WHEN English>=120 THEN ‘优秀‘
WHEN English>=60 AND English<=100 THEN ‘及格‘
WHEN English<60 THEN ‘不及格‘
END AS 描述
FROM dbo.Score

执行的结果是:

学号 英语成绩   描述
1 120 优秀
2 100 及格
3 55 不及格
4 59 不及格
5 60 及格

从Case开始判断,判断什么?不知道,当when开始的时候,才知道判断什么东西,类似于C#中的if...esle if...else..

第二种:直接case列,值判断  

SELECT
CASE StudentID
WHEN 1 THEN ‘学号为1‘
WHEN 2 THEN ‘学号为2‘
WHEN 3 THEN ‘学号为3‘
WHEN 4 THEN ‘学号为4‘
END
FROM dbo.Student

执行的结果为:

(无列名)
学号为1
学号为2
学号为3
学号为4
NULL

看到最后一个是NULL,都不满足Case条件的话,如果没有Else语句,默认返回NULL值。

从Case开始,一开始就知道要判断StudentID的值,如果是1,就输出“学号为1”,后面依次类推。。。

相当于C#中的Switch(条件)case

SELECT
CASE StudentID
WHEN 1 THEN ‘学号为1‘
WHEN 2 THEN ‘学号为2‘
WHEN 3 THEN ‘学号为3‘
WHEN 4 THEN ‘学号为4‘
ELSE ‘无名氏‘
END
FROM dbo.Student

这个SQL,执行的结果是:

(无列名)
学号为1
学号为2
学号为3
学号为4
无名氏

 case 多个列的情况:

时间: 2025-01-31 03:55:31

SQL Case的相关文章

SQL Case 语句的使用

-----简单case 使用 select 学号,姓名, case 专业 when '金融系' then '1' when '材料成型及控制工程' then '2' else '3' end from stu SQL Case 语句的使用,布布扣,bubuko.com

sql case when 用法

sql语言中有没有类似C语言中的switch case的语句?? 没有,用case   when   来代替就行了.            例如,下面的语句显示中文年月         select   getdate()   as   日期,case   month(getdate())     when   11   then   '十一'     when   12   then   '十二'     else   substring('一二三四五六七八九十',   month(getda

SQL CASE 多条件用法

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搜索函数

sql 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搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

SQL Case when 的使用方法(转)

case when--then--else--end的最屌的地方应该是它既在普通的字段中使用,也可以在聚合函数中使用. 原文:http://blog.itpub.net/26451903/viewspace-733526 Case具有两种格式.简单Case函数和Case搜索函数. --Case搜索函数(推荐) CASE WHEN sex = '1' THEN '男' WHEN sex = '2' THEN '女' ELSE '其他' END --简单Case函数(不推荐) CASE sex WH

sql case when then else end as用法

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搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要

SQL case when else

先占个坑,sql 版本的swith case SELECT Oldvote, (CASE WHEN Oldvote=1 THEN (SELECT NOW() from dual) WHEN Oldvote=2 THEN 1 WHEN Oldvote=0 THEN 3 ELSE 3 END) as "number" FROM dual ;

SQL 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函数只返回第一个符合条件的值,剩下的ca

SQL 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搜索函数相比,功能方面会有些限制,比如写判断式. 还有一个需要