oracle中實現擷取字串(substr)、查詢字串位置(instr ... | oracle instr右邊
(1)oracle中實現擷取字串:substrsubstr(string,start_position,[length])其中,string是元字串,start_position為開始位置,length是可選項,表示子字串的位數。例子:substr(ABCDEFG,0); --返回結果是:ABCDEFG,從0位開始擷取後面所有substr(ABCDEFG,2); --返回結果是:BCDEFG,從2位開始擷取後面所有substr(ABCDEFG,0,3); --返回結果是:ABC,從0位開始往後擷取3個字元長度substr(ABCDEFG,0,100); --返回結果是:ABCDEFG,雖然100超出了元字串長度,但是系統會按元字串最大數量返回,不會影響返回結果substr(ABCDEFG,-3); -...
(1)oracle中實現擷取字串:substr
substr(string, start_position, [length])
其中,string是元字串,start_position為開始位置,length是可選項,表示子字串的位數。
例子:
substr(ABCDEFG, 0); -- 返回結果是:ABCDEFG,從0位開始擷取後面所有
substr(ABCDEFG, 2); -- 返回結果是:BCDEFG,從2位開始擷取後面所有
substr(ABCDEFG, 0, 3); -- 返回結果是:ABC,從0位開始往後擷取3個字元長度
substr(ABCDEFG, 0, 100); -- 返回結果是:ABCDEFG,雖然100超出了元字串長度,但是系統會按元字串最大數量返回,不會影響返回結果
substr(ABCDEFG, -3); -- 返回結果是:EFG,如果是負數,則從尾部往前數,擷取-3位置往後的所有字串
(2)查詢字串位置:instr
instr(string, subString, [start_position, [nth_appearance]])
其中,string是元字串;subString是要查詢的子字串;start_position是要查詢的開始位置,為可選項(預設為1),注意在這裡字串索引從1開始,如果此引數為正,則從左到右檢索,如果此引數為負,則從右到左檢索;nth_appearance是元字串中第幾次出現的子字串,此引數可選,預設預設為1,如果是負數則系統報錯。
例子:
instr(ABCDABCDAEF, AB); -- 返回結果是:1,因為instr字串索引從1開始,所以是1不是0
instr(ABCDABCDAEF, DA, 1, 2); -- 返回結果是:8,返回第二次出現DA的位置
instr(A BCDABCDAEF, DA, 1, 2); -- 返回結果是:9,由於我在元字串中加了一個空格,空格仍然算一個字元