ORACLE函數介紹

ORACLE函數介紹(一) 回覆:0 閱讀:143 2009-02-18 15:52:52  單值函數在查詢中返回單個值,可被應用到select,where子句,start with以及connect by 子句和having子句。 (一).數值型函數(Number Functions) 數值型函數輸入數字型參數並返回數值型的值。多數該類函數的返回值支持38位小數點,諸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小數點。ACOS, ASIN, ATAN, and ATAN2支持30位小數點。 1、MOD(n1,n2) 返回n1除n2的餘數,如果n2=0則返回n1的值。例如:SELECT MOD(24,5) FROM DUAL; 2、ROUND(n1[,n2]) 返回四捨五入小數點右邊n2位後n1的值,n2缺省值爲0,如果n2爲負數就舍入到小數點左邊相應的位上(雖然oracle documents上提到n2的值必須爲整數,事實上執行時此處的判斷並不嚴謹,即使n2爲非整數,它也會自動將n2取整後做處理,但是我文檔中其它提到必須爲整的地方需要特別注意,如果不爲整執行時會報錯的)。例如:SELECT ROUND(23.56),ROUND(23.56,1),ROUND(23.56,-1) FROM DUAL; 3、TRUNC(n1[,n2] 返回截尾到n2位小數的n1的值,n2缺省設置爲0,當n2爲缺省設置時會將n1截尾爲整數,如果n2爲負值,就截尾在小數點左邊相應的位上。例如:SELECT TRUNC(23.56),TRUNC(23.56,1),TRUNC(23.56,-1) FROM DUAL; (二).字符型函數返回字符值(Character Functions Returning Character Values)   該類函數返回與輸入類型相同的類型。 l 返回的CHAR類型值長度不超過2000字節; l 返回的VCHAR2類型值長度不超過4000字節;如果上述應返回的字符長度超出,oracle並不會報錯而是直接截斷至最大可支持長度返回。 l 返回的CLOB類型值長度不超過4G;對於CLOB類型的函數,如果返回值長度超出,oracle不會返回任何錯誤而是直接拋出錯誤。 1、LOWER(c) 將指定字符串內字符變爲小寫,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型例如:SELECT LOWER('WhaT is tHis') FROM DUAL; 2、UPPER(c) 將指定字符串內字符變爲大寫,支持CHAR,VARCHAR2,NCHAR,NVARCHAR2,CLOB,NCLOB類型例如:SELECT UPPER('WhaT is tHis') FROM DUAL; 3、LPAD(c1,n[,c2]) 返回指定長度=n的字符串,需要注意的有幾點: l 如果nc1.length and c2 is null,以空格從左向右補充字符長度至n並返回; l 如果n>c1.length and c2 is not null,以指定字符c2從左向右補充c1長度至n並返回;例如:SELECT LPAD('WhaT is tHis',5),LPAD('WhaT is tHis',25),LPAD('WhaT is tHis',25,'-') FROM DUAL; 最後大家再猜一猜,如果n<0,結果會怎麼樣 4、RPAD(c1,n[,c2]) 返回指定長度=n的字符串,基本與上同,不過補充字符是從右向左方向正好與上相反;例如:SELECT RPAD('WhaT is tHis',5),RPAD('WhaT is tHis',25),RPAD('WhaT is tHis',25,'-') FROM DUAL; 5、TRIM([[LEADING||TRAILING||BOTH] c2 FROM] c1) 哈哈,被俺無敵的形容方式搞暈頭了吧,這個地方還是看圖更明瞭一些。看起來很複雜,理解起來很簡單: l 如果沒有指定任何參數則oracle去除c1頭尾空格例如:SELECT TRIM(' WhaT is tHis ') FROM DUAL; l 如果指定了c2參數,則oracle去掉c1頭尾c2(這個建議細緻測試,有多種不同情形的喲) 例如:SELECT TRIM('W' FROM 'WhaT is tHis w W') FROM DUAL; l 如果指定了leading參數則會去掉c1頭部c2 例如:SELECT TRIM(leading 'W' FROM 'WhaT is tHis w W') FROM DUAL; l 如果指定了trailing參數則會去掉c1尾部c2 例如:SELECT TRIM(trailing 'W' FROM 'WhaT is tHis w W') FROM DUAL; l 如果指定了both參數則會去掉c1頭尾c2(跟不指定有區別嗎?沒區別!) 例如:SELECT TRIM(both 'W' FROM 'WhaT is tHis w W') FROM DUAL; 注意:c2長度=1 6、LTRIM(c1[,c2]) 千萬表以爲與上面那個長的像,功能也與上面的類似,本函數是從字符串c1左側截取掉與指定字符串c2相同的字符並返回。如果c2爲空則默認截取空格。例如:SELECT LTRIM('WWhhhhhaT is tHis w W','Wh') FROM DUAL;

發佈了54 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章