Kategorien:

Semistrukturierte Datenfunktionen (Array/Objekt)

ARRAYS_OVERLAP

Vergleicht, ob zwei Arrays mindestens ein Element gemeinsam haben. Gibt TRUE zurück, wenn sie mindestens ein Element gemein haben. Andernfalls wird FALSE zurückgegeben. Die Funktion ist NULL-sicher, d. h. sie behandelt NULLs beim Vergleichen der Gleichheit als bekannte Werte.

Syntax

ARRAYS_OVERLAP( <array1> , <array2> )

Nutzungshinweise

  • Bei Vergleichen von Objekten müssen die Objekte identisch sein, um TRUE zurückzugeben. Weitere Details dazu finden Sie unter Beispiele (unter diesem Thema).

Beispiele

Hier sind einige Beispiele:

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    |
+---------+

Das folgende Beispiel zeigt, dass NULL-Werte den anderen NULL-Werten gleichkommen. Wenn jedes Array einen NULL-Wert enthält, überlappen sich die Arrays, auch wenn keine anderen (nicht NULL) Werte überlappen:

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