ORACLE 實用函式總結

2021-08-27 20:00:25 字數 3110 閱讀 8188

1、nullif(expr1,expr2)

邏輯等價於:case when expr1 = expr2 then null else expr1 end;

如果兩個表示式相等,nullif 返回null;

如果兩個表示式不相等,nullif 返回第乙個 expr1 的值。

2、nvl(expr1,expr2)

邏輯等價於if expr1 is null then expr2 else expr1 end;

如果expr1為null,那麼返回expr2的值;

如果expr1不為null,則返回expr1的值。

3、nvl2(expr1,expr2,expr3)

如果expr1不為null,則返回expr2的值;

如果expr1為null,則返回expr3的值。

4、coalesce(expr1,expr2,expr3...exprn)

從左往右數,遇到第乙個不為null的值,則返回該值。

5、decode(value,if1,then1,if2,then2,if3,then3, . . . else)

value 代表某個表列或計算結果。

如果value的值為if1,decode函式的結果是then1;

如果value的值為if2,decode函式結果是then2;

如果value的值不等於給出的任何配對時,結果就返回else。

6、lpad(string,length, [pad_string])

從左邊對字串string使用指定的字元pad_string進行填充,length是該函式返回的字串長度。

如果字串string大於length,則從右到左擷取指定長度返回。

7、rpad(string,length, [pad_string])

從右邊對字串string使用指定的字元pad_string進行填充。

8、replace(string,search_string[,replacement_string])

將string中的search_string替換為replacement_string,如果replacement_string為空,則刪除所有search_string。

9、translate(string,from_string,to_string)

將string中存在的每個from_string中的字元被to_string中相應的字元所代替。

replace是替換,而translate則是過濾。

例:select nvl2(translate('abc123','#1234567890.','#'),'字串','數字') from dual。

10、substr(string,start_position,[length])

在string裡,從start_position開始取length個字元。

11、substrb(string,start_position,[length])

含義同上,但多位元組符(漢字、全形符等),按2個字元計算的。

12、instr(string, substring[, position, occurrence])

從string中返回substring的位置,沒有找到返回0。

13、ltrim(string1[,string2])

去除出現在string1左面的空格。如果使用string2,會將string2劃分為單字元然後進行遍歷,從左面進行查詢去除直到遇到不在string2中的字元。

例:select ltrim('10900111000991110224323','109') from dual;

結果返回224323。

select ltrim('109200111000991110224323','109') from dual;

結果返回200111000991110224323。

string2分為'1','0','9'在string1中進行遍歷,查詢去除直到遇到'2'才停止。

14、rtrim(string1[,string2])

去除出現在string1右面的空格。如果使用string2,會將string2劃分為單字元然後進行遍歷,從右面進行查詢去除直到遇到不在string2中的字元。

15、trim([[leading||trailing||both] string2 from] string1)

去掉string1內包含的空格或者指定字元。string2必須是單個字元。

16、greatest(expr1,expr2, ... expr_n)

返回序列中的最大值,數字按大小排,字元按首字元比較。

17、least(expr1,expr2, ... expr_n)

返回序列中的最小值。

18、lengthb(string)

返回以位元組為單位的長度。多位元組符(漢字、全形符等),因為字符集的不同,lengthb得到的值可能會不一樣。如zhs16gbk採用兩個byte位來定義乙個漢字。而在utf8,採用3個byte。可以使用length()!=lengthb()判斷是否有中文內容。

19、cast(expr as type_name)

強制轉換成指定的資料型別。

20、wm_concat(column)

合併行記錄,實現行轉列。

21、initcap(string)

將字串string中單詞(注意是單詞)的第乙個字母轉換為大寫,其它則轉換為小寫。

22、to_char([num]|[date[timestamp],date_type])

將數字、時間等型別轉換為字元型別。

23、to_single_byte(string)

將指定字元轉換為半形並返回char型別。

24、round(num1[,num2])

返回四捨五入小數點右邊num2位後num1的值,num2預設值為0,如果num2為負數就捨入到小數點左邊相應的位上。

25、trunc(num1[,num2])

返回截尾到num2位小數的num1的值,當n2為預設設定時會將num1截尾為整數,如果n2為負值,就截尾在小數點左邊相應的位上。

26、ceil(num)

返回大於或等於給出數字的最小整數。

27、mod(num1,num2)

返回num1除num2的餘數,如果num2=0則返回num1的值。

Oracle實用日期函式總結

一 天彙總例句 1 昨天的資料彙總 startday to char trunc startday 1 yyyymmdd and startday to char trunc startday 10 yyyymmdd and startday to char trunc startday,mm yy...

Oracle函式總結

instr 源字串,目標字串,起始位置,匹配序號 在oracle plsql中,instr函式返回要擷取的字串在源字串中的位置。只檢索一次,就是說從字元的開始 到字元的結尾就結束。語法如下 引數分析 string1 源字串,要在此字串中查詢。string2 要在string1中查詢的字串.start...

Oracle函式總結

clob字段值替換 replace x,y,z 返回值為將串x中的y串用z串替換後的結果字串。若省略z引數,則將串x中為y串的地方刪除 update ypgcxx.t article info st set st.f content replace st.f content,portal ypgcx...