Postgresql unnest Beispiele

Postgresql unnest Beispiele
Sie können eine Spalte in PostgreSQL als nur eine Reihe geeigneter Datenarten angeben. Eingebaute, benutzerdefinierte und unveräußerliche Datentypen sind alles Möglichkeiten. Abgesehen davon sind Arrays in Postgresql sehr relevant. Sie haben in PostgreSQL in Bezug auf Arrays gelernt, einschließlich der Konstruktion, Abfrage und manchmal sogar Arrays mit der Array -Methode. Es gibt jedoch Zeiten, in denen ich das Gegenteil durchführen und ein PostgreSQL -Array in Reihen umwandeln möchte. Es gibt viele Ursachen, warum Sie dies gerne tun möchten. Nehmen wir für eine Weile an, Sie suchen nach der Kreuzung von zwei Arrays. In PostgreSQL kann der Schnittbetreiber dies effektiv für zwei verschiedene Zeilensätze tun. Es gibt jedoch kein Gegenstück für Arrays. Ebenso schließt sich der Gewerkschaftsbetreiber 2 Zeilenpaare an. Es gibt jedoch nichts Vergleichbares für Arrays. Die unnehtige Methode scheint das Geheimnis für all das zu sein. Wenn Sie unnafell konsumieren, müssen Sie Vorsicht wenden, da PostgreSQL (wie bei den meisten Computersystemen) alles tun würde, was Sie anweisen, nicht genau das, was Sie wollen, um es zu tun.

Um dieses Konzept vollständig auszuarbeiten, öffnen Sie die installierte Befehlszeilenschale von PostgreSQL in Ihrem System. Geben Sie den Servernamen, den Datenbanknamen, die Portnummer, den Benutzernamen und das Passwort für den jeweiligen Benutzer an, wenn Sie nicht mit den Standardoptionen arbeiten möchten. Wenn Sie mit Standardparametern arbeiten möchten, lassen Sie jede Option leer und drücken Sie die Eingabetaste jeder Option. Jetzt ist Ihre Befehlszeilenschale bereit, daran zu arbeiten.

Beispiel 01: Array -Typdaten definieren

Es ist eine gute Idee, die Grundlagen zu untersuchen, bevor Sie die Array -Werte in der Datenbank ändern. Hier ist der Weg, um eine Texttypliste anzugeben. Sie können sehen, dass die Ausgabe die Texttypliste mit der Auswahlklausel angezeigt hat.

>> Wählen Sie 'aqsa, raza, saeed' :: text [];

Die Art der Daten muss beim Schreiben einer Abfrage definiert werden. PostgreSQL erkennt die Art der Daten nicht, wenn es sich um eine Zeichenfolge handelt. Alternativ können wir das Array [] -Format verwenden, um es als Zeichenfolge -Typ anzugeben, wie unten in der Abfrage angegeben. Aus der unten angegebenen Ausgabe können Sie feststellen, dass die Daten mit der Auswahl der Abfrage als Array -Typ abgerufen wurden.

>> Array ['aqsa', 'raza', 'saeed'] auswählen;

Wenn Sie dieselben Array -Daten mit der Abfrage auswählen, während Sie aus der Klausel verwendet werden, funktioniert dies nicht so, wie es sollte. Probieren Sie beispielsweise die folgende Abfrage von aus der Klausel in der Schale aus. Sie werden überprüfen, ob ein Fehler auftritt. Dies liegt daran.

>> aus array ['aqsa', 'raza', 'saeed'] auswählen;

Beispiel 02: Array in Zeilen umwandeln

Array [] ist eine Funktion, die einen Atomwert zurückgibt. Infolgedessen passt es nur mit ausgewählten und nicht aus der Klausel, da unsere Daten nicht in der "Zeile" -Form enthalten waren. Deshalb haben wir im obigen Beispiel einen Fehler bekommen. Hier erfahren Sie.

>> unlust auswählen (Array ['aqsa', 'raza', 'saeed']);

Beispiel 03: Zeilen in ein Array umwandeln

Um die Zeilen wieder in ein Array umzuwandeln, müssen wir diese bestimmte Abfrage innerhalb einer Abfrage dazu definieren. Sie müssen die beiden Auswahlabfragen hier verwenden. Eine interne Select -Abfrage konvertiert ein Array mit der Unnest -Funktion in Zeilen. Während die externe Auswahlabfrage erneut alle diese Zeilen in ein einzelnes Array konvertiert, wie in dem unten angegebenen Bild gezeigt. Achtung; Sie müssen in der externen Auswahlabfrage kleinere Schreibweisen von 'Array' verwenden.

>> Array auswählen (wählen Sie unlust (Array ['aqsa', 'raza', 'saeed']);

Beispiel 04: Entfernen Sie Duplikate mit einer bestimmten Klausel

Unterscheidbar kann Ihnen helfen, Duplikate aus jeder Form von Daten zu extrahieren. Es erfordert jedoch notwendigerweise die Verwendung von Zeilen als Daten. Dies bedeutet, dass diese Methode für Ganzzahlen, Text, Schwimmkörper und andere Datentypen funktioniert, aber Arrays sind nicht zulässig. Um Duplikate zu entfernen, müssen Sie zuerst Ihre Array -Typ -Daten mit der Unnest -Methode in Zeilen konvertieren. Danach werden diese konvertierten Datenzeilen an die bestimmte Klausel übergeben. Sie können einen Blick auf die folgende Ausgabe haben, dass das Array in Zeilen umgewandelt wurde, und dann wurden nur die unterschiedlichen Werte dieser Zeilen unter Verwendung der bestimmten Klausel abgerufen.

>> Wählen Sie eindeutig Unnest Unnest ('aqsa, raza, saeed, raza, uzma, aqsa' :: text []);

Wenn Sie ein Array als Ausgabe benötigen, verwenden Sie die Funktion array () in der ersten Auswahlabfrage und verwenden Sie die bestimmte Klausel in der nächsten Auswahlabfrage. Aus dem angezeigten Bild können Sie sehen, dass die Ausgabe im Array -Formular angezeigt wurde, nicht in der Zeile. Während der Ausgang nur unterschiedliche Werte enthält.

>> Array auswählen (Wählen Sie eindeutig Unnest ('aqsa, raza, saeed, raza, uzma, aqsa' :: text []));

Beispiel 05: Entfernen Sie Duplikate, während Sie die Bestellung nach Klausel verwenden

Sie können die doppelten Werte auch aus dem Float -Typ -Array entfernen, wie unten gezeigt. Zusammen mit der unterschiedlichen Abfrage werden wir die Reihenfolge nach Klausel verwenden, um das Ergebnis in der Sortierreihenfolge eines bestimmten Werts zu erhalten. Probieren Sie dazu die unterbezeichnete Abfrage in der Befehlszeilenschale aus.

>> Wählen Sie eindeutig Unnest ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []) bestellen um 1;

Zunächst wurde das Array unter Verwendung der unlehnten Funktion in Zeilen umgewandelt. Anschließend werden diese Zeilen in aufsteigender Reihenfolge sortiert, indem sie die unten gezeigte Reihenfolge nach Klausel verwenden.

Verwenden Sie, um die Zeilen erneut in ein Array in ein Array umzuwandeln. Sie können einen Blick auf die folgende Ausgabe geben, dass das Array zuerst in Zeilen umgewandelt wurde, und dann wurden nur die unterschiedlichen Werte ausgewählt. Endlich werden Zeilen wieder in ein Array umgewandelt.

>> Array auswählen (Wählen Sie eindeutig Unnest ('2,85, 2.73, 2.85, 1.8, 2.73 ':: float []));

Abschluss:

Schließlich haben Sie jedes Beispiel aus diesem Leitfaden erfolgreich implementiert. Wir hoffen, dass Sie in den Beispielen keine Probleme haben, während Sie unnafif (), unterschiedlich und array () ausführen.