4. oracle 条件逻辑结构

Oracle提供了多种条件逻辑结构,包括Decode函数、Case when语句、Nvl、Nvl2、Coalesce函数以及NULLIF函数。Decode函数适用于简单的相等判断,Case when语句能实现更复杂的逻辑,Nvl系列函数处理NULL值,而NULLIF函数在两个参数相等时返回NULL。

Oracle 提供了很多种在sql语句中实现 if–then --else条件逻辑的方法,可以选择下面几种常用的条件逻辑结构:

  • Decode
  • Case when
  • Nvl、 nvl2、coalesce
  • Nullif

1、Decode 函数

Decode是Oracle特有的函数,只能用于相等的判断,且不适合对Null值进行判断。

decode(字段,情况1,显示结果1,情况2,显示结果2,……,都不满足的显示结果)

在这里插入图片描述

2、Case when语句

常用的case when 语句有两类:一种简单式与decode类似,一种条件搜索式。

(1)简单式
在这里插入图片描述
(2)搜索式 搜索式可以实现更复杂的逻辑判断。

在这里插入图片描述
不管是简单式还是搜索式,判断的顺序都是自上而下的,如果一条数据满足多个判断,按照第一个匹配到的条件执行,且终止,不再向下执行。

3、Nvl、Nvl2、Coalesce函数

这三个函数是专门用来处理NULL值的。
NVL(字段,为空时的默认值),NVL(字段,不为空时的值,为空时的值)
在这里插入图片描述
coalesce(expre1,expre2,expre3,……)的作用是:返回传入的参数中第一个非null的值。expre1不为空值则返回expre1;否则判断expre2是否是空值,如果expre2不为空值则返回expre2;否则判断expre3是否是空值,如果expre3不为空值则返回expre3;……以此类推,如果所有的表达式都为空值,则返回NULL。

例子:nullbalance为空就判断nvl(balance,0)+100,直到不为NULL,否则为0

在这里插入图片描述

4、NULLIF函数

NULLIF(Expression1,Expression2):给定两个参数Expression1和Expression2,如果两个参数相等,则返回NULL;否则就返回第一个参数。
等价于:Case WHEN Expression1=Expression2 Then NULL ELSE Expression1。
例子:0和0 相等显示为空,5和2不等显示5

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值