카테고리:

반정형 및 정형 데이터 함수 (배열/오브젝트)

ARRAY_CONTAINS

지정된 배열에서 지정된 값이 발견되면 TRUE를 반환합니다.

구문

ARRAY_CONTAINS( <value_expr> , <array> )
Copy

인자

value_expr

array 에서 찾을 값입니다.

array

검색할 배열입니다.

반환

이 함수는 BOOLEAN 타입 또는 NULL의 값을 반환합니다.

  • arrayvalue_expr 가 있는 경우 함수는 TRUE를 반환합니다.

  • arrayvalue_expr 가 없는 경우 함수는 FALSE를 반환합니다.

  • value_expr 인자가 NULL이고 배열에 NULL 값이 없는 경우 이 함수는 NULL을 반환합니다.

    value_expr 인자가 NULL이고 배열에 NULL 값이 있는 경우 이 함수는 TRUE를 반환합니다.

사용법 노트

이 함수는 value_expr 에서 와일드카드를 지원하지 않습니다. 그러나 ARRAY_TO_STRING 함수를 사용하여 배열을 문자열로 변환한 다음 와일드카드 문자를 사용하여 문자열을 검색할 수 있습니다. 예를 들어, 와일드카드를 지정하여 [ NOT ] LIKEREGEXP_LIKE 함수를 사용하여 반환된 문자열을 검색할 수 있습니다.

다음 쿼리는 SELECT 목록에서 ARRAY_CONTAINS 함수를 사용합니다.

SELECT ARRAY_CONTAINS('hello'::VARIANT, ARRAY_CONSTRUCT('hello', 'hi'));
Copy
+------------------------------------------------------------------+
| ARRAY_CONTAINS('HELLO'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|------------------------------------------------------------------|
| True                                                             |
+------------------------------------------------------------------+
SELECT ARRAY_CONTAINS('hello'::VARIANT, ARRAY_CONSTRUCT('hola', 'bonjour'));
Copy
+----------------------------------------------------------------------+
| ARRAY_CONTAINS('HELLO'::VARIANT, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------------------|
| False                                                                |
+----------------------------------------------------------------------+
SELECT ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('hola', 'bonjour'));
Copy
+----------------------------------------------------------+
| ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------|
| NULL                                                     |
+----------------------------------------------------------+
SELECT ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('hola', NULL));
Copy
+-----------------------------------------------------+
| ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('HOLA', NULL)) |
|-----------------------------------------------------|
| True                                                |
+-----------------------------------------------------+

다음 쿼리는 WHERE 절에서 ARRAY_CONTAINS 함수를 사용합니다. 먼저, ARRAY 열이 있는 테이블을 만들고 데이터를 삽입합니다.

CREATE OR REPLACE TABLE array_example (id INT, array_column ARRAY);

INSERT INTO array_example (id, array_column)
  SELECT 1, ARRAY_CONSTRUCT(1, 2, 3);

INSERT INTO array_example (id, array_column)
  SELECT 2, ARRAY_CONSTRUCT(4, 5, 6);

SELECT * FROM array_example;
Copy
+----+--------------+
| ID | ARRAY_COLUMN |
|----+--------------|
|  1 | [            |
|    |   1,         |
|    |   2,         |
|    |   3          |
|    | ]            |
|  2 | [            |
|    |   4,         |
|    |   5,         |
|    |   6          |
|    | ]            |
+----+--------------+

value_expr 에 대해 찾을 값과 array 에 대한 ARRAY 열을 지정하는 쿼리를 실행합니다.

SELECT * FROM array_example WHERE ARRAY_CONTAINS(5, array_column);
Copy
+----+--------------+
| ID | ARRAY_COLUMN |
|----+--------------|
|  2 | [            |
|    |   4,         |
|    |   5,         |
|    |   6          |
|    | ]            |
+----+--------------+