標籤:oracle
本次主要總結了以下字元函數的作用及使用方法: 函 數說 明 ASCII返回對應字元的十進位值 CHR給出十進位返回字元 CONCAT拼接兩個字串,與 || 相同 INITCAT將字串的第一個字母變為大寫 INSTR找出某個字串的位置 INSTRB找出某個字串的位置和位元組數 LENGTH以字元給出字串的長度 LENGTHB以位元組給出字串的長度 LOWER將字串轉換成小寫 LPAD使用指定的字元在字元的左邊填充 LTRIM在左邊裁剪掉指定的字元 RPAD使用指定的字元在字元的右邊填充 RTRIM在右邊裁剪掉指定的字元 REPLACE執行字串搜尋和替換 SUBSTR取字串的子串 SUBSTRB取字串的子串(以位元組) SOUNDEX返回一個同音字串 TRANSLATE執行字串搜尋和替換 TRIM裁剪掉前面或後面的字串 UPPER將字串變為大寫 NVL以一個值來替換空值 1、ASCII(<xxx>) <xxx>是字串,返回與指定的字元對應的十進位數。 SQL> select ascii(‘A‘) A,ascii(‘a‘) a,ascii(‘0‘) zero,ascii(‘ ‘) space from dual; A a ZERO SPACE ---------- ---------- ---------- ---------- 65 97 48 32 2、CHR(n]) 給出整數,返回對應字元。如: SQL> select chr(65) chr65 from dual; C - A 3、CONCAT(<c1>,<c2>) 返回字串c1與字串c2合并後的值。例如: SQL> select concat(‘010-‘,‘8801 8159‘) from dual; CONCAT(‘01 ----------------- 010-8801 8159 4、INITCAP(<c1>) 返回字串c1 並第一個字母變為大寫。例如: SQL> select initcap(‘simth‘) upp from dual; UPP ----- Simth 5、INSTR(<c1>,<c2>[,<I>[,<j>] ] ) 在一個字串中搜尋指定的字元,返回傳現指定的字元的位置。 C1: 被搜尋的字串 C2: 希望搜尋的字串 I: 搜尋的開始位置,預設是1 J: 出現的位置,預設是1。 SQL> SELECT INSTR (‘Oracle Training‘, ‘ra‘, 1, 2) "Instring" FROM DUAL; Instring ---------- 9 6、INSTRB(<c1>,<c2>[,<I>[,<j>] ] ) 除了返回的位元組外 ,與INSTR 相同, 7、LENGTH( <c> ) 返回字串 c 的長度。 SQL> select name,length(name),addr,length(addr),sal,length(to_char(sal)) from nchar_tst; NAME LENGTH(NAME) ADDR LENGTH(ADDR) SAL LENGTH(TO_CHAR(SAL)) ------ ------------ ---------------- ------------ ---------- ---------------- 張五一 3 北京市海澱區 6 99999.99 8 8、LENGTHB( <c> ) 以位元組返回字串的位元組數。 SQL> select name,lengthb(name),length(name) from nchar_tst; NAME LENGTHB(NAME) LENGTH(NAME) ------ ------------- ------------ 張五一 6 3 9、LOWER ( <c> ) 返回字串並將所有字元變為小寫。 SQL> select lower(‘AaBbCcDd‘) AaBbCcDd from dual; AABBCCDD -------- aabbccdd 10、UPPER( <c>) 與 LOWER 相反,將給出字串變為大寫。如: SQL> select upper(‘AaBbCcDd‘) AaBbCcDd from dual; AABBCCDD -------- AABBCCDD 11、RPAD和LPAD RPAD(string,Length[,‘set‘]) LPAD(string,Length[,‘set‘]) RPAD在列的右邊用特定的字元補齊; LPAD在列的左邊用特定的字元補齊。 例1: SQL>select RPAD(City,35,‘.‘),temperature from weather; RPAD(City,35,‘.‘) temperature -------------------------- ---------------- CLEVELAND...... 85 LOS ANGELES.. 81 ......................... (即不夠35個字元用‘.‘補齊) 12、LTRIM(左截斷)RTRIM(右截斷) LTRIM (string [,’set’]) Left TRIM (左截斷)刪去左邊出現的任何set 字元。 RTRIM (string [,’set’]) Right TRIM (右截斷)刪去右邊出現的任何set 字元。 例1: SELECT RTRIM (‘Mother Theresa, The’, ‘The’) FROM DUAL; RTRIM (‘M --------------- Mother Theresa, 13、SUBSTR Substr(string,m[,n]) 截取字串函數 substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字元 substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之後所有字元 substr("ABCDEFG", 0, 3); //返回:ABC,截取從A開始3個字元 substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100雖然超出預先處理的字串最長度,但不會影響返回結果,系統按預先處理字串最大數量返回。 substr("ABCDEFG", -3); //返回:EFG,注意參數-3,為負值時表示從尾部開始算起,字串排列位置不變。 14、SUBSTRB(string,m[,n]) 對字串(或欄位),從m位元組 開始,連續取 n個位元組並返回結果,如果沒有指n則一直取到尾。 15、REPLACE (‘string’ [,’string_in’,’string_out’]) String: 希望被替換的字串或變數。 String_in: 被替換字串。 String_out: 要替換字串。 SQL> select replace (‘111222333444‘,‘222‘,‘888‘) from dual; REPLACE(‘111 -------------------- 111888333444
更多精彩視頻及學習文章,請關注我:
http://www.wyzc.com/ocp/?tg=3006123630
Oracle單行函數之字元函數