カテゴリ:

半構造化データ関数と構造化データ関数 (配列/オブジェクト)

ARRAY_REMOVE

ソース ARRAY を指定すると、指定された値の要素が削除された ARRAY を返します。

たとえば、 ARRAY_REMOVE([2, 5, 7, 5, 1], 5) は、5に等しい要素が削除された ARRAY を返します([2, 7, 1])。

構文

ARRAY_REMOVE( <array> , <value_of_elements_to_remove> )
Copy

引数

array

ソース配列です。

value_of_elements_to_remove

削除する要素の VARIANT 値。この関数は、この値に等しい要素を削除します。

VARCHAR 値を指定する場合は、まずその値を VARIANT にキャストする必要があります。

戻り値

指定された値と等しいすべての要素が削除された ARRAY。

value_of_elements_to_remove が NULL の場合、関数は NULL を返します。

使用上の注意

  • array 内のすべての要素が value_of_elements_to_remove に等しい場合、関数は空の ARRAY を返します。

次の例では、値5が削除された要素を含む ARRAY を返します。

SELECT ARRAY_REMOVE(
  [1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL],
  5);
Copy
+---------------------------------------------+
| ARRAY_REMOVE(                               |
|   [1, 5, 5.00, 5.00::DOUBLE, '5', 5, NULL], |
|   5)                                        |
|---------------------------------------------|
| [                                           |
|   1,                                        |
|   "5",                                      |
|   undefined                                 |
| ]                                           |
+---------------------------------------------+

次の例では、値5を持つ要素のみを含む ARRAY から、値5を持つ要素を削除します。関数は空の ARRAY を返します。

SELECT ARRAY_REMOVE([5, 5], 5);
Copy
+-------------------------+
| ARRAY_REMOVE([5, 5], 5) |
|-------------------------|
| []                      |
+-------------------------+

次の例では、値 'a' を持つ要素を ARRAY から削除します。例に示すように、値を VARIANT としてキャストする必要があります。

SELECT ARRAY_REMOVE(
  ['a', 'b', 'a', 'c', 'd', 'a'],
  'a'::VARIANT);
Copy
+-----------------------------------+
| ARRAY_REMOVE(                     |
|   ['A', 'B', 'A', 'C', 'D', 'A'], |
|   'A'::VARIANT)                   |
|-----------------------------------|
| [                                 |
|   "b",                            |
|   "c",                            |
|   "d"                             |
| ]                                 |
+-----------------------------------+