1、首先介绍下COALESCE函数COALESCE(value1, value2, value3, ...)返回value值列表中第一个不为空的值select coalesce(55, null, 33) from dual; -- 返回55select coalesce(null, 3, 1 ) from dual; -- 返回3将以上两句sql在sqldeveloper中运行测试,看下查询结果
2、GREATEST(value1, value2, value3, ...)返回value值列表中最大的一个值当value值列表中有一个为NULL,则返回NULL值。select greatest(5, 10, 6 ) from dual; -- 返回10select greatest('A', 'E', 'C') from dual; -- 返回Eselect greatest(null, 'E', 'C') from dual; -- 返回null
3、LEAST(value1, value2, value3, ...)返回value值列表中最小的一个值当value值列表中有一个为NULL,则返回NULL值。se造婷用痃lect least(1, 5, 2 ) from dual; -- 返回1select least('A', 'E', 'C') from dual; -- 返回Aselect least(null, 'E', 'C') from dual; -- 返回null
4、上面介绍的函数是在固定值中比较的,下面介绍下如何在应用在表中的数据,这里以test表来测试,test表如下图所示
5、分别执行以下sql语句select greatest(t.age, t.score) from test t; -- 返回age和score较大值select least(t.age, t.score) from test t; -- 返回age和score较小值
6、select coalesce(t.age, t.score) from test t; -- 类似 NVL(t.age, t.score)通过coalesce例子可以看出,与NVL(expr1,expr2)函数类似如果第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。NVL2函数用法NVL2(expr1,expr2, expr3),如果该函数的第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第三个参数的值