PostgreSQL IN-Klausel

Postgresql In Klausel



Es gibt viele Klauseln, die Sie in PostgreSQL verwenden können. Die IN-Klausel ist eine dieser Klauseln und bietet viele Vorteile, wenn Sie wissen, wie man sie verwendet, insbesondere in Kombination mit der WHERE-Klausel. Die IN-Klausel arbeitet hauptsächlich mit der SELECT-Anweisung zusammen, um zu filtern, wie die Abfrage ausgeführt werden soll. Bei der Ausführung prüft die IN-Klausel die angegebene Liste auf Übereinstimmung mit den Kriterien und gibt die entsprechenden Werte aus.

Verstehen, wie man mit der PostgreSQL-IN-Klausel arbeitet

In PostgreSQL verwenden Sie die IN-Klausel mit der WHERE-Klausel, um die Ausgabe durch Vergleich mit einer Liste von Werten zu filtern. Das Ergebnis ist ein boolescher Wert.

Hier ist die zu verwendende Syntax:







Wert IN (Wert1, Wert2, Wert_n);

Die angegebene Syntax nimmt den Wert und vergleicht ihn mit Wert1, Wert2 und Wert_n. Bei einer Übereinstimmung wird dann ein boolescher Wert zurückgegeben. Die Liste der zu prüfenden Werte kann einen beliebigen Literaltyp haben, einschließlich Zeichenfolgen und Ganzzahlen. Außerdem können Sie eine Unterabfrage wie eine SELECT-Anweisung erstellen.



Lassen Sie uns die verschiedenen Möglichkeiten zur Verwendung des PostgreSQL-IN-Operators besprechen.



1. Arbeiten mit einer Unterabfrage

Wie bereits erwähnt, kann der zu prüfende Wert eine Unterabfrage sein, die die Werte mithilfe einer Abfrageanweisung wie SELECT extrahiert. Auf diese Weise können Sie eine Tabelle abfragen, um die Werte einer bestimmten Spalte zu überprüfen. Nutzen wir für unser Beispiel die folgende Tabelle:





Angenommen, wir möchten alle Kunden überprüfen, deren „order_id“ einer der im Abfrageabschnitt angegebenen Werte sein könnte. Wir fügen den Zielwert als ersten Teil unserer Anweisung hinzu und verwenden dann die WHERE-Klausel mit der IN-Klausel, um die Abfrage zu erstellen.



So sieht unsere Abfrage aus:

PostgreSQL überprüft die Spalte „order_id“ in der Tabelle „customers“ und gibt alle Datensätze zurück, deren „order_id“ mit einem der in den Klammern angegebenen Datensätze übereinstimmt.

Im ersten Fall haben wir den Fall einer ganzzahligen Werteliste verwendet. Wir können auch anhand der Saiten prüfen. Beachten Sie, dass nichts zurückgegeben wird, wenn nicht alle von Ihnen angegebenen Zeichenfolgen mit dem Zielwert übereinstimmen. Das folgende Beispiel enthält einige Zeichenfolgen, die in unserer Tabelle nicht vorhanden sind. Solche Zeichenfolgen werden übersprungen und nur die übereinstimmenden Zeichenfolgen werden in der folgenden Ausgabe angezeigt:

2. Arbeiten mit IN(SELECT)

Manchmal funktioniert die manuelle Angabe der Werteliste möglicherweise nicht. Sie können eine SELECT-Anweisung verwenden, um eine Liste von Werten aus Ihrer Tabelle abzurufen und sie zum Vergleich mit dem Zielwert zu verwenden. Wenn wir die folgende Tabelle zu unserer Datenbank hinzufügen, können wir sie mit der vorherigen Tabelle „Kunden“ kombinieren, um unsere Unterabfrage zu erstellen:

Nehmen wir an, wir möchten die Datensätze aus der Tabelle „Bestellungen“ nur anzeigen, wenn der Zielwert (order_id) in der Tabelle „Kunden“ enthalten ist. Hier ist die Spalte „customers.order_id“ unsere Werteliste und wir vergleichen ihre Werte mit denen in der Spalte „orders.order_id“.

In diesem Fall stimmen nur drei Einträge mit der Suche überein, und das ist es, was wir als Ausgabe für unsere PostgreSQL-Klausel IN(SELECT) erhalten.

3. Arbeiten mit der NOT IN PostgreSQL-Klausel

Mit dem vorherigen Befehl können wir die anderen Werte anzeigen, die nicht mit dem Zielwert übereinstimmen. Dazu machen wir das Gegenteil von dem, was die IN-Klausel bewirkt. Daher negieren wir den Befehl als NOT IN.

So schreiben wir unseren neuen Befehl:

Beachten Sie, dass wir eine andere Ausgabe erhalten als in Beispiel 2. Das liegt daran, dass wir mit der NOT IN-Klausel anstelle der IN-Klausel arbeiten.

Idealerweise können Sie NOT immer dann hinzufügen, wenn Sie die Ergebnisse negieren möchten, die Sie mit der PostgreSQL-IN-Klausel erhalten. Die Anwendungen sind endlos. Wenn Sie die Werte überprüfen und schnell feststellen möchten, dass sie übereinstimmen, ist die IN-Klausel Ihr bester Freund.

Abschluss

Die IN-Klausel arbeitet mit der WHERE-Klausel zusammen, um einen Zielwert anhand einer Werteliste zu prüfen. Die IN-Klausel gibt einen booleschen Wert zurück, der bestätigt, ob der Zielwert in der von Ihnen angegebenen Werteliste übereinstimmt. Sie können die Werte als Literale angeben oder die SELECT-Anweisung verwenden, um eine zu verwendende Unterabfrage zu erstellen. Wir haben drei Beispiele dafür gegeben, wie Sie die PostgreSQL-IN-Klausel verwenden können. Hoffentlich haben Sie dadurch Einblicke in die Arbeit mit der PostgreSQL-IN-Klausel erhalten.