oracle中substr函數的第一個參數可以是數字類型嗎?
不可以,第1個參數只能是字符串類型
1、substr(string string, int a, int b)
參數1:string 要處理的字符串
參數2:a 截取字符串的開始位置(起始位置是0)
參數3:b 截取的字符串的長度(而不是字符串的結束位置)
例如:
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, 3); //返回:EFG,注意參數-3,為負值時表示從尾部開始算起,字符串排列位置不變。
2、substr(string string, int a)
參數1:string 要處理的字符串
參數2:a 可以理解為從索引a(注意:起始索引是0)處開始截取字符串,也可以理解為從第 (a+1)個字符開始截取字符串。
例如:
substr("ABCDEFG", 0); //返回:ABCDEFG, 截取所有字符
substr("ABCDEFG", 2); //返回:CDEFG,截取從C開始之后所有字符