View a markdown version of this page

Funzione ARRAY_EXCEPT - Amazon Redshift

Amazon Redshift non supporterà più l'uso delle UDF Python dopo il 30 giugno 2026. Inizieremo ad applicarlo per fasi. Per ulteriori informazioni sulla fine del ciclo di vita e sulle opzioni di migrazione di Python, consulta il post del blog pubblicato il 30 giugno 2025.

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Funzione ARRAY_EXCEPT

Restituisce la differenza tra due matrici mantenendo gli elementi del primo array che non esistono nel secondo array. La funzione è NULL-safe, nel senso che considera i NULL come oggetti noti.

Sintassi

ARRAY_EXCEPT( array1, array2 [, distinct] )

Arguments (Argomenti)

matrice 1

Un'espressione SUPER che specifica il primo array.

matrice2

Un'espressione SUPER che specifica il secondo array.

distinct

Un valore booleano che specifica se restituire solo elementi distinti:

  • distinct = FALSE: Multi-set si applica la semantica. Ogni occorrenza di un elemento nel primo array viene confrontata con le occorrenze nel secondo array. Se la prima matrice contiene più occorrenze di un elemento rispetto alla seconda matrice, le occorrenze aggiuntive vengono conservate nel risultato.

  • distinct = TRUE: si applica la semantica impostata. Entrambi gli array vengono trattati come set, ignorando gli elementi duplicati. Gli elementi del primo array vengono rimossi se sono presenti in un punto qualsiasi del secondo array, indipendentemente dal numero di occorrenze.

L'impostazione predefinita è FALSE.

Tipo restituito

La funzione ARRAY_EXCEPT restituisce un tipo SUPER.

Esempio

Gli esempi seguenti mostrano la funzione ARRAY_EXCEPT.

SELECT ARRAY_EXCEPT(ARRAY('a','b','c'), ARRAY('b','c','d')); array_except -------------- ["a"] (1 row)

Multi-set semantica:

SELECT ARRAY_EXCEPT(ARRAY('b','b','b','b'), ARRAY('b','b')); array_except -------------- ["b","b"] (1 row)

Imposta la semantica:

SELECT ARRAY_EXCEPT(ARRAY('a','b','b'), ARRAY('b'), TRUE); array_except -------------- ["a"] (1 row)

I NULL vengono trattati come oggetti noti.

SELECT ARRAY_EXCEPT(ARRAY('a',NULL), ARRAY(NULL)); array_except -------------- ["a"] (1 row)

consultare anche