返回字串str從start_position開始,長度為length的子串。
命令格式
string substr(string <str>, bigint <start_position>[, bigint <length>])
參數說明
str:必填。STRING類型。如果輸入為BIGINT、DECIMAL、DOUBLE或DATETIME類型,則會隱式轉換為STRING類型後參與運算。
start_position:必填。BIGINT類型,預設起始位置為1。
Hive相容資料類型版本:當start_position為0時,與起始位置為1時相同。
1.0和2.0資料類型版本:當start_position為0時,返回NULL。
length:可選。BIGINT類型,表示子串的長度值。值必須大於0。
重要如果
setproject odps.function.strictmode=false
時:length值小於0時,會返回空白。如果
setproject odps.function.strictmode=true
時:length值小於0時,會返回錯誤。
傳回值說明
返回STRING類型。返回規則如下:
str非STRING、BIGINT、DECIMAL、DOUBLE或DATETIME類型時,返回報錯。
length非BIGINT類型或值小於等於0時,返回報錯。
當length被省略時,返回到str結尾的子串。
str、start_position或length值為NULL時,返回NULL。
使用樣本
樣本1:返回字串
abc
從指定位置開始,指定長度的子串。命令樣本如下。--返回bc。 select substr('abc', 2); --返回b。 select substr('abc', 2, 1); --返回bc。 select substr('abc',-2 , 2);
樣本2:任一輸入參數為NULL。命令樣本如下。
--返回NULL。 select substr('abc', null);
相關函數
SUBSTR函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數。