SQL UNNEST

SQL UNNEST
Un array fa parte del tipo di raccolta in SQL, come introdotto in SQL 99. Un array è una raccolta di elementi di lunghezza predefinita e tipo di dati. Un array può essere di qualsiasi tipo definito dall'utente o a causa di un'operazione SQL che restituisce un set di risultati dell'array.

Puoi anche avere una serie di variazioni variabili utilizzando un multiset come introdotto in SQL 2003.

Puoi saperne di più nella risorsa fornita di seguito:

https: // sql-99.PRIEDTHOCS.io/en/ultimo/capitoli/10.html

Nota: sebbene lo standard ANSI SQL supporti il ​​tipo di array, alcuni motori SQL non lo supportano ancora.

SQL Crea array

Possiamo creare un array dichiarando un tipo di array, quindi impostando una variabile di array di tipo set.

Una sintassi di esempio è mostrata di seguito:

Crea il tipo intarray come array intero [100];

La sintassi precedente crea un intarray di tipo array.

SQL UNNEST

Per selezionare i dati da un array, utilizziamo la funzione poco più. Questa funzione prende un array e restituisce una tabella con una riga per ciascun elemento nella raccolta specificata.

La sintassi della funzione è come mostrata:

Unnest (array) [con offset]

Prendi il seguente esempio:

Selezionare * da UnNest ([1,2,3,4,5]) come ID con offset come ordine di offset per offset;

Nell'esempio precedente query, utilizziamo la funzione non piùest per disimballare o "appiattire" l'array in un set di riga.

Nota: utilizziamo l'istruzione OFFSET con implementare l'ordine dei valori della riga, poiché la funzione più poco più distinta distruggerà l'ordine degli elementi nell'array specificato. Pertanto, puoi omettere l'ordine per clausola se non ti interessa l'ordine degli elementi.

Interrogazioni di array nidificati

In alcuni casi, è possibile incontrare una serie di strutture. Per accedere e interrogare i campi struct, è necessario disimballare usando la clausola di join.

Un esempio semplicistico è mostrato di seguito:

Crea il tipo intarray come array intero [100];
Dichiara array_ids intarray;
Imposta Array_ids = Array [1,2,3,4,5];
Seleziona * da join Unnest (array_ids) come ID;

Nell'esempio precedente, iniziamo dichiarando un tipo di array. Successivamente, utilizziamo un costruttore di array per inizializzare l'array con nuovi valori.

Infine, utilizziamo la funzione UNNEST per selezionare gli elementi nell'array in una tabella di riga set.

Un esempio più pratico è mostrato di seguito:

Con siti come (
Seleziona "siti" come sito,
[struct ("LinuxHint" come site_name, ["golang", "ruggine", "sql_server", "redis"] come site_topics)] come siti
);
SELEZIONARE
Sito, site_topics
Dai siti s
Cross unisciti Unnest (s.siti) come sito;

La query precedente dovrebbe restituire l'output come mostrato di seguito:

+-------+---------------------------------------------------------+
| sito | site_topic |
+-------+---------------------------------------------------------+
| Siti + Linuxhint, ["Golang", "Rust", "SQL_Server", "Redis"] |
+-------+---------------------------------------------------------+

Conclusione

Questo articolo copre i fondamenti del lavoro con i tipi di raccolta SQL e la definizione della funzione poco più. Tieni presente che ciò può variare a seconda del motore del database e se il tipo di array è implementato. Speriamo che tu abbia trovato questo articolo utile. Controlla gli altri articoli di suggerimento Linux per ulteriori suggerimenti e tutorial.

Per la documentazione concreta sugli array standard SQL, controllare la risorsa di seguito.