全部產品
Search
文件中心

MaxCompute:ARRAY_POSITION

更新時間:Jun 19, 2024

計算元素element在ARRAY數組a中第一次出現的位置。ARRAY數組元素位置編號自左往右,從1開始計數。

命令格式

bigint array_position(array<T> <a>, T <element>)

參數說明

  • a:必填。ARRAY數組。array<T>中的T指代ARRAY數組元素的資料類型。支援的資料類型如下:

    • TINYINT、SMALLINT、INT、BIGINT

    • FLOAT、DOUBLE

    • BOOLEAN

    • DECIMAL、DECIMALVAL

    • DATE、DATETIME、TIMESTAMP、IntervalDayTime、IntervalYearMonth

    • STRING、BINARY、VARCHAR、CHAR

    • ARRAY、STRUCT、MAP

  • element:必填。待查詢的元素,資料類型必須與a中元素的資料類型相同。

傳回值說明

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

  • 如果ARRAY數組aelement為NULL,返回NULL。

  • 未找到元素時返回0。

使用樣本

  • 樣本1:計算元素1第一次出現在ARRAY數組array(3, 2, 1)中的位置。命令樣本如下。

    --返回3。
    select array_position(array(3, 2, 1), 1);
  • 樣本2:element為NULL。命令樣本如下。

    --返回NULL。
    select array_position(array(3, 1, null), null);

相關函數

ARRAY_POSITION函數屬於複雜類型函數,更多對複雜類型資料(例如ARRAY、MAP、STRUCT、JSON資料)的處理函數請參見複雜類型函數