지정된 배열에서 지정된 값이 발견되면 TRUE를 반환합니다.
예
다음 쿼리는 ARRAY_CONTAINS 함수를 SELECT 목록에서 사용합니다.
이 예제에서 이 함수는 value_expr 인자가 'hello' 이고 배열에 'hello' 문자열을 저장하는 VARIANT 값이 포함되어 있으므로 TRUE 를 반환합니다.
SELECT ARRAY_CONTAINS('hello'::VARIANT, ARRAY_CONSTRUCT('hello', 'hi'));
+------------------------------------------------------------------+
| ARRAY_CONTAINS('HELLO'::VARIANT, ARRAY_CONSTRUCT('HELLO', 'HI')) |
|------------------------------------------------------------------|
| True |
+------------------------------------------------------------------+
이 예제에서 이 함수는 value_expr 인자가 'hello' 이지만 배열에 'hello' 문자열을 저장하는 VARIANT 값이 포함되어 있지 않으므로 FALSE 를 반환합니다.
SELECT ARRAY_CONTAINS('hello'::VARIANT, ARRAY_CONSTRUCT('hola', 'bonjour'));
+----------------------------------------------------------------------+
| ARRAY_CONTAINS('HELLO'::VARIANT, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------------------|
| False |
+----------------------------------------------------------------------+
이 예제에서 이 함수는 value_expr 인자가 NULL 이지만 배열에 SQL NULL 값이 포함되어 있지 않으므로 NULL 을 반환합니다.
SELECT ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('hola', 'bonjour'));
+----------------------------------------------------------+
| ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('HOLA', 'BONJOUR')) |
|----------------------------------------------------------|
| NULL |
+----------------------------------------------------------+
이 예제에서 이 함수는 value_expr 인자가 NULL 이고 배열에 SQL NULL 값이 포함되어 있으므로 TRUE 를 반환합니다.
SELECT ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('hola', NULL));
+-----------------------------------------------------+
| ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('HOLA', NULL)) |
|-----------------------------------------------------|
| True |
+-----------------------------------------------------+
이 예제에서 이 함수는 value_expr 인자가 JSON null 값이고 배열에 JSON null 값이 포함되어 있으므로 TRUE 를 반환합니다.
SELECT ARRAY_CONTAINS(PARSE_JSON('null'), ARRAY_CONSTRUCT('hola', PARSE_JSON('null')));
+---------------------------------------------------------------------------------+
| ARRAY_CONTAINS(PARSE_JSON('NULL'), ARRAY_CONSTRUCT('HOLA', PARSE_JSON('NULL'))) |
|---------------------------------------------------------------------------------|
| True |
+---------------------------------------------------------------------------------+
이 예제에서 이 함수는 value_expr 인자가 NULL 이지만 배열에 (JSON null 값은 포함되어 있지만) SQL NULL 값이 포함되어 있지 않으므로 NULL 을 반환합니다.
SELECT ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('hola', PARSE_JSON('null')));
+-------------------------------------------------------------------+
| ARRAY_CONTAINS(NULL, ARRAY_CONSTRUCT('HOLA', PARSE_JSON('NULL'))) |
|-------------------------------------------------------------------|
| NULL |
+-------------------------------------------------------------------+
다음 쿼리는 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;
+----+--------------+
| 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);
+----+--------------+
| ID | ARRAY_COLUMN |
|----+--------------|
| 2 | [ |
| | 4, |
| | 5, |
| | 6 |
| | ] |
+----+--------------+