位置是從1 開始 substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字元 substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字元 substr("ABCDEFG", -0); //返回:ABCDEFG,截取所有字元 -0=0,都是從左邊截 su ...
- SUBSTR(string,start_position,[length]) 求子字元串,返回字元串
解釋:string 元字元串
start_position 開始位置(從0開始)
length 可選項,子字元串的個數
For example:
位置是從1 開始
substr("ABCDEFG", 0); //返回:ABCDEFG,截取所有字元
substr("ABCDEFG", 1); //返回:ABCDEFG,截取所有字元
substr("ABCDEFG", -0); //返回:ABCDEFG,截取所有字元 -0=0,都是從左邊截
substr("ABCDEFG", -0,1); //返回:A,從左截1位
substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之後所有字元
substr("ABCDEFG", -2); //返回:FG,從右邊數第二位開始截取
substr("ABCDEFG", -2,1); //返回:F,從右邊數第二位開始截取1位長度
substr("ABCDEFG", 0, 3); //返回:ABC,截取從A開始3個字元
substr("ABCDEFG", 0, 100); //返回:ABCDEFG,100雖然超出預處理的字元串最長度,但不會影響返回結果,系統按預處理字元串最大數量返回。
substr("ABCDEFG", -3); //返回:EFG,註意參數-3,為負值時表示從尾部開始算起,字元串排列位置不變。
2. INSTR(string,subString,position,ocurrence)查找字元串位置 從1開始
解釋:string:源字元串
subString:要查找的子字元串
position:查找開始位置(從1開始) 不可以是0,會找不見,-是從右邊找
比如:-2 從右邊第二位開始找,
ocurrence:源字元串中第幾次出現的子字元串 不加這個參數預設是1
substr("ABCDEFG", -2,1); //返回:F,從右邊數第二位開始截取1位長度
select instr('ABCDEFGABCDEFG','B',2) from dual 返回2
select instr('ABCDEFGABCDEFG','B',3) from dual 返回9
select instr('ABCDEFGABCDEFG','B',-1) from dual 返回9
select instr('ABCDEFGABCDEFG','B',-1,2) from dual 返回2
select instr('ABCDEFGABCDEFG','B',1,2) from dual 返回9
For example: 取A001HZJKQS 中間的001
substr('A001HZJKQS',2,instr('A001HZJKQS','HZJKQS',1)-2)
參考貼: https://www.cnblogs.com/cyblogs/p/5983612.html