全部產品
Search
文件中心

MaxCompute:SUBSTR

更新時間:Feb 28, 2024

返回字串strstart_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結尾的子串。

  • strstart_positionlength值為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函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數