Oracle常用函数之 case when then else end

说实话case when函数不算是oracle数据库特有的函数,但是在平时中又是很常用到的,所以挑到这里说一下。这里说一个插曲,在进入现在工作公司的面试题中有三道关于sql的,其中有一道就是需要用到case when函数,由于之前学习没全面了解过数据库相关函数,而在工作中都是有需求才去查有没有相应的函数,导致认识的数据库函数少之又少。好了,废话少说,接下来介绍下case when的功能以及语法。

case when相当于java中的switch case

switch(params){
case "A":
    System.out.println("A!");
    break;
case "B":
    System.out.println("B!");
    break;
default:
    System.out.println("C!");
    break;
}

当参数params的值为A时打印输出A!,为B时打印输出B!,都不是时输出C!,当然,在java中用if else也可以实现以上的需求。那么在sql 中,case when语法其实是有两种写法的包括简单case函数case搜索函数

简单case函数
select 
case username
when 'ouxio' then '12345'
when 'hahaa' then '22344'
else  'emmm'
end
as password
from users;

当字段username的值为ouxio时,输出的是12345,当值为hahaa时,输出22344,其他情况下都输出emmm

case搜索函数
select 
case 
when username = 'ouxio' then '12345'
when email = 'hahaa@qq.com' then '22344'
else  'emmm'
end
as password
from users;

当字段username的值为ouxio时,输出的是12345,当字段email的值为hahaa@qq.com时,输出22344,其他情况下都输出emmm

第二种case搜索函数这样写的好处包括

  1. 判断条件可以写表达式,比如=><
  2. 字段可多个,比如在上面第一个when判断字段是username,而第二个when判断的字段是email
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值