為什麼Oracle的內置函數中沒有leftstr,rightstr之類的字符串函數
(substr使用說明大全)使用ORACLE的人應該都用過Oracle中的substr函數,函數作用就不說了。
substr函數是一個功能比較強大的函數,有比較多的用法,本文將詳細說明。
以下是函數調用原型
substr(string,postion[,substring_length])
string:原字符串,沒什麼好講的,就是要檢索的原字符串
postion:開始檢索的位置,
如果大於0則表示從第一個字符開始向後算
如果小於0則表示從最後一個字符開始向前算,如果向前時小於原字符串的長度則表達式返回空
如果等於0則認為是從第一個字符串開始
如果有小數則把小數捨去
substring_length:檢索的字符串長度
如果大於0則表示返回的字符數,如果計算後原字符串的字符數小於substring_length,則返回到最後的字符串
如果小於等於0則返回空
如果有小數則把小數捨去
如果沒有這個參數則表示取到最後
以下是substr使用的各種示例
取左邊的3個字符
substr(''ABCDEFG'',1,3)=''ABC''
取從第3個字符開始的2個字符
substr(''ABCDEFG'',3,2)=''CD''
取右邊的3個字符
substr(''ABCDEFG'',-3)=''EFG''
取從第6個字符開始到最後的字符串
substr(''ABCDEFG'',6)=''FG''
取倒數第5個字符開始的2個字符
substr(''ABCDEFG'',-5,2)=''CD''
如果向前時小於原字符串的長度則表達式返回空
substr(''ABCDEFG'',-8,7)=''''
小數捨去
substr(''ABCDEFG'',2.6,2.2)=''BC''
備注:
substr是按字符來計算,一個字母或漢字都按一個字符計算如:
substr(''智能ABC'',2,2)=''能A''
如果想要按字節來計算則可以采用substrb函數,用法一樣
substrb(''智能ABC'',3,4)=''能AB''
當然還有另外幾個按不同編碼計算的函數
substrc:按Unicode編碼,
substr2:按UCS2編碼,
substr4:按UCS4編碼。