Unnest Sql

Unnest Sql
Ein Array ist Teil des Sammelentyps in SQL, wie in SQL 99 eingeführt. Ein Array ist eine Sammlung von Elementen vor definierter Länge und Datentyp. Ein Array kann von jedem benutzerdefinierten Typ oder aufgrund einer SQL-Operation sein, die ein Array-Ergebnissatz zurückgibt.

Sie können auch eine Reihe von unterschiedlichen Längen mit einem Multiset haben, wie in SQL 2003 eingeführt.

Sie können mehr in der unten angegebenen Ressource erfahren:

https: // SQL-99.Readthedocs.IO/EN/LETPLE/CHAPONS/10.html

Hinweis: Obwohl ANSI SQL Standard den Array -Typ unterstützt, unterstützen einige SQL -Motoren ihn noch nicht.

SQL Array erstellen

Wir können ein Array erstellen, indem wir einen Array -Typ deklarieren und dann eine Array -Variable des Set -Typs festlegen.

Eine Beispielsyntax ist unten gezeigt:

Erstellen Sie Typtarray als Integer Array [100];

Die vorherige Syntax erstellt einen Array -Typ -Intarrray.

SQL unlust

Um Daten aus einem Array auszuwählen, verwenden wir die Unnest -Funktion. Diese Funktion nimmt ein Array auf und gibt eine Tabelle mit einer Zeile für jedes Element in der angegebenen Sammlung zurück.

Die Funktionssyntax ist wie gezeigt:

Unnest (Array) [mit Offset]

Nehmen Sie das folgende Beispiel:

Wählen Sie * aus unnafell ([1,2,3,4,5]) als ID mit Offset As Offset Order durch Offset;

In der vorherigen Beispielabfrage verwenden wir die Unnest -Funktion, um das Array in eine Zeile -Set auszupacken oder zu „verflachen“.

HINWEIS: Wir verwenden die Anweisung mit Offset -Anweisung. Daher können Sie die Bestellung per Klausel weglassen, wenn Sie sich nicht um die Reihenfolge der Elemente kümmern.

Abfragen verschachtelte Arrays

In einigen Fällen können Sie auf eine Reihe von Strukturen stoßen. Um auf die Strukturfelder zuzugreifen und abfragen zu können, müssen Sie sie mit der Unnest -Klausel auspacken.

Im Folgenden ist ein simpeltes Beispiel gezeigt:

Erstellen Sie Typtarray als Integer Array [100];
Deklarararray_ids intarrray;
Set Array_ids = Array [1,2,3,4,5];
Wählen Sie * aus Join Unnest (array_ids) als ID;

Im vorherigen Beispiel deklarieren wir zunächst einen Array -Typ. Als nächstes verwenden wir einen Array -Konstruktor, um das Array mit neuen Werten zu initialisieren.

Schließlich verwenden wir die Unnest -Funktion, um die Elemente im Array in einer Zeilentabelle Set auszuwählen.

Ein praktischeres Beispiel ist unten gezeigt:

Mit Websites als (
Wählen Sie "Websites" als Site aus,
[struct ("LinuxHint" als Site_Name, ["Golang", "Rust", "SQL_Server", "Redis"] als Site_Topics)] als Websites
);
WÄHLEN
Site, Site_topics
Von Standorten s
Cross Join Unnest (s.Websites) als Seite;

Die vorherige Abfrage sollte die Ausgabe wie unten gezeigt zurückgeben:

+-------+---------------------------------------------------------+
| Seite | Site_topic |
+-------+---------------------------------------------------------+
| Sites + LinuxHint, ["Golang", "Rust", "SQL_Server", "Redis"] |
+-------+---------------------------------------------------------+

Abschluss

Dieser Artikel deckt die Grundlagen der Arbeit mit SQL -Sammlungstypen und die Unnest Function Definition ab. Beachten Sie, dass dies je nach Datenbank -Engine variieren kann und ob der Array -Typ implementiert ist oder nicht. Wir hoffen, Sie haben diesen Artikel hilfreich gefunden. Weitere Tipps und Tutorials finden Sie in den anderen Linux -Hinweisartikeln.

Weitere konkrete Dokumentation zu SQL -Standard -Arrays finden Sie in der folgenden Ressource.