1.案例:
select greatest('36', '55', '34') v_max, least('36', '55', '34') v_minfrom 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的...