1、語法
greatest(expr_1, expr_2, ...expr_n)函式從表示式(列、常量、計算值)expr_1, expr_2, ... expr_n等中找出最大的數返回。在比較時,oracie會自動按表示式的資料型別進行比較,以expr_1的資料型別為準。
2、使用位置
過程性語句和sql語句
3、示例
示例一:
數值——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> sql>select greatest(2, 'a', 12, 3, 16, 8, 9) a from dual;
sql>select greatest(2, 'a', 12, 3, 16, 8, 9) a from dual
ora-00900: 無效 sql 語句
示例二:
字元創——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示例三:
時間——expr_1為時間型別。
全部為時間型別:
sql> select greatest(to_date('2014-08-01','yyyy-mm-dd'),to_date('2017-08-01','yyyy-mm-dd')) a from dual;
a-----------
2017/8/1
部分為時間型別,不能進行隱式型別轉換:
sql> select greatest(to_date('2014-08-01','yyyy-mm-dd'),'2017-08-01') a from dual;
select greatest(to_date('2014-08-01','yyyy-mm-dd'),'2017-08-01') a from dual
ora-01861: 文字與格式字串不匹配
示例四:
空值——當expr為函式的時候,不可避免的會產生空值
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樣例的sh模式為實驗資料 建立實驗資料表 sales fact create table sales fact as select country name country,country subregion region,prod name...
函式指標例項
1.定義 每乙個函式都占用一段記憶體單元,它們有乙個起始位址,指向函式入口位址的指標稱為函式指標。2.語法 指向函式的指標變數的一般定義形式為 資料型別 指標變數名 參數列 3.說明 1 函式指標的定義形式中的資料型別是指函式的返回值的型別。2 區分下面兩個語句 int p int a,int b ...
物件例項函式
coding utf 8 物件例項函式 class people object 如果需要在建立物件的時候,給物件屬性賦值,就可以在初始化函式中傳遞引數,給屬性賦值,如果不需要初始化物件屬性值,就不用寫了 def init self 初始化函式可以不用傳遞引數值 可以直接給屬性賦乙個預設值 self....