ORACLE功能GREATEST功能說明具體例項

2021-09-07 03:11:27 字數 2217 閱讀 5622

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

的資料型別為準。

3同意使用的位置

過程性語句和

sql語句。

4演示樣例

4.1演示樣例一【數值】

expr_1

為數值型。

按大小進行比較。

所有為數值型。取出最大值為16:

sql>select greatest(2, 5, 12, 3, 16, 8, 9) a from dual;

a ----------

16 部分為數值型,可是字串能夠依據

expr_1

的資料型別

通過隱式型別轉換轉成數值型:

sql>select greatest(2, '5', 12, 3, 16, 8, 9) a from dual;

a ----------

16 部分為數值型,可是字串不能通過隱式型別轉換成數值型會報錯,由於字串

a不能轉換成數值型:

sql>select greatest(2, 'a', 12, 3, 16, 8, 9) a from dual;

selectgreatest(2, 'a', 12, 3, 16, 8, 9) a from dual

ora-01722:

無效數字

4.2演示樣例二【字串】

expr_1

為字元型。

按首字母進行比較(假設相等則向下比較)

所有為字元型,取出最大值g:

sql>  select greatest('a', 'b', 'c', 'd', 'e', 'f','g') a from dual;

a -

g 所有為字元型,首字母相等:

sql>  select greatest('a', 'b', 'c', 'd', 'e','ga', 'gab') a from dual;

a ---

gab

部分為字元型,會把非字元型轉換成字元型:

sql>  select greatest('a', 6, 7, 5000, 'e', 'f','g') a from dual;

a -

g 4.3

演示樣例三【時間】

expr_1

為時間型別。

所有為時間型別:

sql>  selectgreatest(sysdate,to_date('2014-08-01','yyyy-mm-dd')) a from dual;

a -----------

2014/8/1

部分為時間型別,不能進行隱式型別轉換:

sql>  select greatest(sysdate,'2014-08-01') a fromdual;

selectgreatest(sysdate,'2014-08-01') a from dual

ora-01861:

文字與格式字串不匹配

4.4演示樣例四【空值】

使用greatest取最大值的時候,當

expr

為函式的時候,不可避免的會產生空值。

產生空值。函式greatest

會怎麼進行處理那:

expr_1

為null時:

sql>  select greatest(null, 'b', 'c', 'd', 'e','ga', 'gab') a from dual;

a -

expr_1

不為null時,其他的expr為null時:

sql>  select greatest('a', 'b', 'c', 'd', 'e',null, 'gab') a from dual;

a -

由上能夠發現,僅僅要

greatest

的expr有乙個為null,都會返回null。

oracle 關閉audit 功能

oracle 11g預設安裝資料庫啟動了audit功能,導致oracle不斷累積sys.aud 表及相關索引資料量增加 如果導致表空間滿了,在alert日誌中將會報ora 1654 unable to extend index sys.錯誤。如果不用到審計功能,建議關閉審計。處理過程 1 用orac...

Oracle 閃回功能

檢視閃回功能是否開啟 sql select flashback on from v database flashback on yes 開啟閃回功能 確保資料庫處於歸檔模式 sql shutdown immediate sql startup mount sql alter database arc...

轉oracle查詢功能

查詢所有表名 select t.table name from user tables t 查詢所有欄位名 select t.column name from user col comments t 查詢指定表的所有欄位名 select t.column name from user col com...