语法
CASE WHEN a THEN b [WHEN c THEN d] [ELSE e] END*
举个例子,能让大家更加了解
用sql语句查图书表中的书名和价格,要求价格在10~20的输出‘10 to 20’,价格为空的输出‘unknow’,其余的输出价格
1.首先先执行建表语句:
create table kyeong_book(
id int primary key,
name varchar2(30),
price varchar2(30)
);
2.插入数据
insert into kyeong_book values(1,‘aa’,11);
insert into kyeong_book values(2,‘bb’,null);
insert into kyeong_book values(3,‘cc’,23);
insert into kyeong_book values(4,‘dd’,20);
insert into kyeong_book values(5,‘ee’,1);
insert into kyeong_book values(6,‘ff’,null);
3.根据要求查询
select
id,
name,
case when price is null then ‘unknow’ when price between 10 and 20 then ‘10to20’ else price end as price
from kyeong_book;
4.分类
–简单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部分将会被自动忽略。