全部產品
Search
文件中心

MaxCompute:FIND_IN_SET

更新時間:Feb 15, 2025

尋找字串str1在以分隔字元delimiter分隔的字串str2中的位置,從1開始計數。

命令格式

BIGINT FIND_IN_SET(STRING <str1>, STRING <str2>[, STRING <delimiter>])

參數說明

參數

是否必填

說明

str1

STRING類型。待尋找的字串。

str2

STRING類型。以分隔字元delimiter分隔的字串。

delimiter

STRING類型常量。預設時預設為逗號(,)。分隔字元可以是一個字元,也可以是一個字串。

傳回值說明

返回BIGINT類型。返回規則如下:

  • str2中無法匹配到str1str1中包含分隔字元delimiter時,返回0。

  • str1str2值為NULL時,返回NULL

使用樣本

  • 樣本1:尋找字串ab在以逗號(,)分隔的字串abc,hello,ab,c中的位置。命令樣本如下。

    SELECT FIND_IN_SET('ab', 'abc,hello,ab,c') AS pos;

    返回結果如下。

    +------------+
    | pos        |
    +------------+
    | 3          |
    +------------+
  • 樣本2:尋找字串hi在以逗號(,)分隔的字串abc,hello,ab,c中的位置。命令樣本如下。

    SELECT FIND_IN_SET('hi', 'abc,hello,ab,c') AS pos;

    返回結果如下。

    +------------+
    | pos        |
    +------------+
    | 0          |
    +------------+
  • 樣本3:尋找字串ab在以底線(_)分隔的字串abc_hello_ab_c中的位置。命令樣本如下。

    SELECT FIND_IN_SET('ab', 'abc_hello_ab_c', '_') AS pos;

    返回結果如下。

    +------------+
    | pos        |
    +------------+
    | 3          |
    +------------+
  • 樣本4:當輸入參數str1str2值為NULL時,命令樣本如下。

    SELECT FIND_IN_SET(null, 'abc,hello,ab,c') AS pos;

    返回結果如下。

    +------------+
    | pos        |
    +------------+
    | NULL       |
    +------------+

相關函數

FIND_IN_SET函數屬於字串函數,更多尋找字串、轉換字串格式的相關函數請參見字串函數