Unnest SQL

Unnest SQL
En matrise er en del av samlingstypen i SQL, som introdusert i SQL 99. En matrise er en samling av elementer av forhåndsdefinert lengde og datatype. En matrise kan være av hvilken som helst brukerdefinert type eller på grunn av en SQL-operasjon som returnerer et array-resultatsett.

Du kan også ha en rekke varierende lengder ved å bruke et multisett som introdusert i SQL 2003.

Du kan lære mer i ressursen som er gitt nedenfor:

https: // sql-99.LEDTHEDOCS.IO/EN/Siste/kapitler/10.html

Merk: Selv om ANSI SQL Standard støtter matrisetypen, støtter ikke noen SQL -motorer ennå.

SQL Lag matrise

Vi kan opprette en matrise ved å erklære en matrisetype, og deretter sette en matrisevariabel av settetype.

Et eksempel på syntaks er vist nedenfor:

Lag Type Intarray som heltallsarray [100];

Den forrige syntaksen oppretter en array -type intarray.

SQL Unnest

For å velge data fra en matrise, bruker vi Unnest -funksjonen. Denne funksjonen tar inn en matrise og returnerer en tabell med en rad for hvert element i den spesifiserte samlingen.

Funksjonssyntaksen er som vist:

Unnest (Array) [med forskyvning]

Ta følgende eksempel:

Velg * fra Unnest ([1,2,3,4,5]) som ID med forskyvning som forskyvningsrekkefølge ved forskyvning;

I forrige eksempel på spørringen bruker vi Unnest -funksjonen for å pakke ut eller "flate" matrisen inn i et radsett.

Merk: Vi bruker med Offset -setningen for å implementere rekkefølgen på radenes verdier, fordi Unnest -funksjonen vil ødelegge rekkefølgen på elementene i den spesifiserte matrisen. Derfor kan du utelate bestillingen etter klausul hvis du ikke bryr deg om elementene?.

Spørring nestede matriser

I noen tilfeller kan du møte en rekke strukturer. For å få tilgang til og spørre strukturfeltene, må du pakke ut dem ved å bruke Unnest -leddet.

Et forenklet eksempel vises nedenfor:

Lag Type Intarray som heltallsarray [100];
Erklære array_ids intarray;
Sett array_ids = array [1,2,3,4,5];
Velg * fra å bli med Unnest (Array_ids) som ID;

I forrige eksempel starter vi med å erklære en array -type. Deretter bruker vi en matrisekonstruktør for å initialisere matrisen med nye verdier.

Til slutt bruker vi Unnest -funksjonen for å velge elementene i matrisen inn i et radbordsett.

Et mer praktisk eksempel vises nedenfor:

Med nettsteder som (
Velg "nettsteder" som nettsted,
[struct ("Linuxhint" som Site_name, ["Golang", "Rust", "SQL_Server", "Redis"] som Site_topics)] som nettsteder
);
PLUKKE UT
Nettsted, Site_topics
Fra nettsteder s
Kors bli med Unnest (s.nettsteder) som nettsted;

Den forrige spørringen skal returnere utdataene som vist nedenfor:

+-------+---------------------------------------------------------+
| Nettsted | site_topic |
+-------+---------------------------------------------------------+
| nettsteder + linuxhint, ["golang", "rust", "sql_server", "redis"] |
+-------+---------------------------------------------------------+

Konklusjon

Denne artikkelen dekker grunnleggende om å jobbe med SQL -samlingstyper og Unnest -funksjonsdefinisjonen. Husk at dette kan variere avhengig av databasemotoren og om array -typen er implementert eller ikke. Vi håper du fant denne artikkelen nyttig. Sjekk de andre Linux -hint -artiklene for flere tips og opplæringsprogrammer.

For konkret dokumentasjon på SQL Standard -matriser, sjekk ressursen nedenfor.