类别:

:doc:`/sql-reference/functions-semistructured`(数组/对象)

ARRAY_POSITION

返回元素在数组中首次出现位置的索引。

语法

ARRAY_POSITION( <variant_expr> , <array> )
Copy

实参

value_expr

要在 array 中查找的值。

array

要搜索的 ARRAY。

返回

该函数返回 INTEGER,指定 value_exprarray 中的位置。

使用说明

  • 返回值是从 0 开始的,而不是从 1 开始的。换句话说,如果 value_expr 与数组中的第一个元素匹配,则此函数返回 0,而不是 1。

  • 如果该值不包含在 ARRAY 中,则函数返回 NULL。

  • 如果为 value_expr 指定 NULL,则函数返回数组中第一个 NULL 的位置。

示例

以下示例展示了如何使用此函数:

SELECT ARRAY_POSITION('hello'::variant, array_construct('hello', 'hi'));
+------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|------------------------------------------------------------------|
|                                                                0 |
+------------------------------------------------------------------+
Copy
SELECT ARRAY_POSITION('hi'::variant, array_construct('hello', 'hi'));
+---------------------------------------------------------------+
| ARRAY_POSITION('HI'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|---------------------------------------------------------------|
|                                                             1 |
+---------------------------------------------------------------+
Copy
SELECT ARRAY_POSITION('hello'::variant, array_construct('hola', 'bonjour'));
+----------------------------------------------------------------------+
| ARRAY_POSITION('HELLO'::VARIANT, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------------------|
|                                                                 NULL |
+----------------------------------------------------------------------+
Copy
语言: 中文