ARRAYS_OVERLAP

ARRAYS_OVERLAP

두 배열이 공통 요소를 하나 이상 가지고 있는지 비교해요. 공통 요소가 하나 이상 있으면 TRUE를, 그렇지 않으면 FALSE를 반환해요. 이 함수는 NULL 안전(NULL-safe) 함수로, 같음 비교 시 NULL을 알려진 값으로 취급해요.

출처: Snowflake ARRAYS_OVERLAP 함수 문서

본문

참고 항목: ARRAY_INTERSECTION

구문 (Syntax)

ARRAYS_OVERLAP(  ,  )

사용 노트 (Usage Notes)

  • 객체를 비교할 때, TRUE를 반환하려면 객체가 동일해야 해요. 자세한 내용은 이 주제의 예제 섹션을 참고해요.
  • 두 인자 모두 구조적(structured) ARRAY이거나 반구조적(semi-structured) ARRAY여야 해요.
  • 구조적 ARRAY를 전달하는 경우, 두 번째 인자의 ARRAY는 첫 번째 인자의 ARRAY와 비교 가능해야 해요.

예제 (Examples)

다음은 몇 가지 예제예요:

SELECT ARRAYS_OVERLAP(array_construct('hello', 'aloha'), 
                      array_construct('hello', 'hi', 'hey'))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+
SELECT ARRAYS_OVERLAP(array_construct('hello', 'aloha'), 
                      array_construct('hola', 'bonjour', 'ciao'))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| False   |
+---------+
SELECT ARRAYS_OVERLAP(array_construct(object_construct('a',1,'b',2), 1, 2), 
                      array_construct(object_construct('b',2,'c',3), 3, 4))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| False   |
+---------+
SELECT ARRAYS_OVERLAP(array_construct(object_construct('a',1,'b',2), 1, 2), 
                      array_construct(object_construct('a',1,'b',2), 3, 4))
  AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+

다음 예제는 NULL 값이 다른 NULL 값과 동일한 것으로 간주된다는 것을 보여줘요. 각 배열에 NULL 값이 포함되면, 다른 (NULL이 아닌) 값들이 겹치지 않더라도 두 배열은 겹치는 것으로 간주돼요:

SELECT ARRAYS_OVERLAP(ARRAY_CONSTRUCT(1, 2, NULL),
                      ARRAY_CONSTRUCT(3, NULL, 5))
 AS Overlap;
+---------+
| OVERLAP |
|---------|
| True    |
+---------+

더 알아보기