oracle 資料庫對於多列求最大值

2021-09-09 04:35:15 字數 1488 閱讀 4445

1.案例:

select greatest('36', '55', '34') v_max, least('36', '55', '34') v_min

from dual

oracle比較一列的最大值或者最小值,我們會不假思索地用max和min函式,但是對於比較一行的最大值或最小值呢?是不是日常用的少,很多人都不知道有oracle也有內建函式實現這個功能:coalesce / greatest / least.

1. coalesce 返回該表示式列表的第乙個非空value。

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

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

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

example: 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值。

example: 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值。

example: 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 較小值

oracle 資料庫 對於時間操作

在系統時間基礎上延遲5秒 select sysdate 5 24 60 60 from dual 在系統時間基礎上延遲5分鐘 select sysdate 5 24 60 from dual 在系統時間基礎上延遲5小時 select sysdate 5 24 from dual 在系統時間基礎上延遲...

oracle 資料庫 對於時間操作

在系統時間基礎上延遲5秒 select sysdate 5 24 60 60 from dual 在系統時間基礎上延遲5分鐘 select sysdate 5 24 60 from dual 在系統時間基礎上延遲5小時 select sysdate 5 24 from dual 在系統時間基礎上延遲...

oracle中GREATEST,求多列最大值

1語法 greatest expr 1,expr 2,expr n 2說明greatest expr 1,expr 2,expr n 函式從表示式 列 常量 計算值 expr 1,expr 2,expr n等中找出最大的數返回。在比較時,oracie會自動按表示式的資料型別進行比較,以expr 1的...