【轉】ORACLE 內置函數之 GREATEST 和 LEAST(比較一行的最大值或最小值)

原文鏈接:https://blog.csdn.net/piaoboyijianke1/article/details/44829933

【轉載】原文來源:https://blog.csdn.net/piaoboyijianke1/article/details/44829933

Oracle比較一列的最大值或者最小值,我們會不假思索地用MAX和MIN函數,但是對於比較一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有ORACLE也有內置函數實現這個功能:COALESCE / GREATEST / LEAST。

1. COALESCE 返回該表達式列表的第一個非空value

格式:COALESCE(value1, value2, value3, …)

含義:返回value列表第一個非空的值

注意:value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。

舉例:

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

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

select coalesce(t.empno, t.mgr) from scott.emp t;    -- 效果類似 NVL(t.empno, t.mgr)

2. GREATEST 返回值列表中最大值

格式:GREATEST(value1, value2, value3, …)

含義:返回value列表最大的值

注意:value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。當value值列表中有一個爲NULL,則返回NULL值。

舉例:

select greatest(1, 3, 2) from dual;    -- 返回3

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

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

select greatest(t.empno, t.mgr) from  scott.emp t;    -- 返回empno和mgr 較大值

3. LEAST 返回值列表中最小值

格式:LEAST(value1, value2, value3, …)

含義:返回value列表最小的值

注意:value列表必須是相同類型,也可以是一個表的同一行、不同列的值進行比較。當value值列表中有一個爲NULL,則返回NULL值

舉例:

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

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

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

select least(t.empno, t.mgr) from  scott.emp t;    -- 返回empno和mgr 較小值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章