sql中case when语句的使用

case when语句有两种格式:简单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函数只返回第一个符合条件的值,剩下的Case部分将会被自动忽略。

考虑一个例子:

有一张表score,里面有3个字段:YW,SX,YY。其中有3条记录分别表示语文70分,数学80分,英语58分,请用一条sql语句查询出这三条记录并按以下条件显示出来:
大于或等于80表示优秀,大于或等于60表示及格,小于60分表示不及格。
显示格式:
语文 数学 英语
及格 优秀 不及格

------------------------------------------
select
(case when YW>=80
then ‘优秀‘
when YW>=60 then ‘及格‘
else ‘不及格‘) as 语文,
(case when
SX>=80 then ‘优秀‘
when SX>=60 then ‘及格‘
else ‘不及格‘) as 数学,
(case
when YY>=80 then ‘优秀‘
when YY>=60 then ‘及格‘
else ‘不及格‘) as
英语
from score

时间: 11-15

sql中case when语句的使用的相关文章

SQL中的LIKE语句的用法

SQL中的LIKE语句的用法 内容 在SQL结构化查询语言中,LIKE语句有着至关重要的作用.LIKE语句的语法格式是:select * from 表名 where 字段名 like 对应值(子串),它主要是针对字符型字段的,它的作用是在一个字符型字段列中检索包含对应子串的. 假设有一个数据库中有个表table1,在table1中有两个字段,分别是name和sex二者全是字符型数据.现在我们要在姓名字段中查询以“张”字开头的记录,语句如下:     select * from table1 wh

SQL中CASE 的用法 转载

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

SQL中的注释语句

单行注释 SQL语句中的单行注释使用 -- create database database_x --创建数据库database_x 多行注释 SQL语句中的多行注释采用 /*…*/ create database database_x /* 创建一个数据库 名字叫做database_x */ 作者:耑新新,发布于  博客园 转载请注明出处,欢迎邮件交流:[email protected]

SQL中case when then用法

sql语句判断方式之一Case.具有两种格式:简单的Case函数.Case搜索函数. 1.简单Case函数 CASE sex WHEN '1' THEN '男' WHEN '2' THEN '女' ELSE '其他' END 2.Case搜索函数 CASE WHEN sex='1' THEN '男' WHEN sex='2' THEN '女' ELSE sex='其他' END

sql select case when 语句

有道笔试题: 服务器监控表server_status中,当服务器状态发生server_status变化时数据表中将被插入一条记录,状态0表示停机  1表示正常,用SQL查询Server A 的停机开始时间和结束时间,表中存在多台Server的状态记录. SVR_ID SVR_NAME STATUS_TIME STATUS 1 A 2013-10-31 00:00:00 1 2 B 2013-10-31 00:00:00 1 1 A 2014-11-31 00:00:00 0 2 B 2014-1

sql中case when的使用

运用场景:在表查询中总会遇到一些枚举定义的字段,如表:姓别(sex)字段,1为男,2为女.如果枚举过多很难记住对应的意思,都需要查看表注释,这样既麻烦有浪费时间.下面就距离对比case when的用法和好处. 1.普通查询 SELECT name,sex FROM person: 结果: 2.使用case when SELECT name,CASE sex WHEN 1 THEN '男' WHEN 2 THEN '女' ELSE '其他' END FROM person;

关于SQL中的Update语句

今天在SQL数据库操作时需要将一张表中的数据Update到另一张表中去, 可是用我以往的写法确怎么也不能成功.代码如下: update table1 a set a.Col1=b.Col2 from table2 b where a.c=b.c 上面的写法似乎是在Oracle的环境下可以实现的, (具体没有验证过) 反正在SQL Server中是无法执行. 上网找了一下终于找到了解决方法, 如下: Oralce和DB2都支持的语法: UPDATE A  SET (A1, A2, A3) = (S

sql中在查询语句中加判断,控制输出的内容

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

PL/SQL中的流控制语句

1.选择控制语句 --语法1--IF 条件 THEN 语句; END IF; DECLARE v_Salary NUMBER(8,2); BEGIN SELECT salary INTO v_Salary FROM auths WHERE name='张三'; IF v_Salary IS NOT NULL THEN DBMS_OUTPUT.PUT_LINE(v_Salary); END IF; END; --语法2-- IF 条件 THEN 语句1; ELSE 语句2; END IF; DEC