oracle函数COALESCE、GREATEST和LEAST如何使用

 时间:2026-02-12 00:31:53

1、首先介绍下COALESCE函数

COALESCE(value1, value2, value3, ...)返回value值列表中第一个不为空的值

select coalesce(55, null, 33) from dual; -- 返回55

select coalesce(null, 3, 1 ) from dual; -- 返回3

将以上两句sql在sqldeveloper中运行测试,看下查询结果

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

2、GREATEST(value1, value2, value3, ...)返回value值列表中最大的一个值

当value值列表中有一个为NULL,则返回NULL值。

select greatest(5, 10, 6 ) from dual; -- 返回10

select greatest('A', 'E', 'C') from dual; -- 返回E

select greatest(null, 'E', 'C') from dual; -- 返回null

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

3、LEAST(value1, value2, value3, ...)返回value值列表中最小的一个值

当value值列表中有一个为NULL,则返回NULL值。

select least(1, 5, 2 ) from dual; -- 返回1

select least('A', 'E', 'C') from dual; -- 返回A

select least(null, 'E', 'C') from dual; -- 返回null

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

4、上面介绍的函数是在固定值中比较的,下面介绍下如何在应用在表中的数据,这里以test表来测试,test表如下图所示

oracle函数COALESCE、GREATEST和LEAST如何使用

5、分别执行以下sql语句

select greatest(t.age, t.score) from test t; -- 返回age和score较大值

select least(t.age, t.score) from test t; -- 返回age和score较小值

oracle函数COALESCE、GREATEST和LEAST如何使用

oracle函数COALESCE、GREATEST和LEAST如何使用

6、select coalesce(t.age, t.score) from test t; -- 类似 NVL(t.age, t.score)

通过coalesce例子可以看出,与NVL(expr1,expr2)函数类似

如果第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。NVL2函数用法NVL2(expr1,expr2, expr3),如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值

oracle函数COALESCE、GREATEST和LEAST如何使用

  • 胃痛吃什么药好?
  • 简简单单,一碗韭芽炒蛋,你也可以!
  • 养生-血管如何保养?
  • 麻油猪肝的做法
  • 蜜果出行充电原理
  • 热门搜索
    五一节的手抄报 少先队员手抄报图片 端午节手抄报文字内容 迎中秋庆国庆手抄报简单又漂亮 英语手抄报国庆节 寻根乡愁手抄报 猴年春节手抄报 诚实守信手抄报图片 安全伴我行手抄报图片 关于成语的手抄报