SQL语句进阶 ---- case when ...的用法

语法

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部分将会被自动忽略。
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值