PostgreSQL IN-clausule

Postgresql In Clausule



Er zijn tal van clausules die u kunt gebruiken in PostgreSQL. De IN-clausule is een van deze clausules en heeft veel voordelen als u begrijpt hoe u deze moet gebruiken, vooral in combinatie met de WHERE-clausule. De IN-clausule werkt voornamelijk met de SELECT-instructie om te filteren hoe u de query wilt uitvoeren. Wanneer deze wordt uitgevoerd, controleert de IN-clausule de opgegeven lijst om te zien of deze overeenkomt met de criteria en worden de overeenkomende waarden uitgevoerd.

Begrijpen hoe u met de PostgreSQL IN-clausule kunt werken

In PostgreSQL gebruik je de IN-clausule met de WHERE-clausule om de uitvoer te filteren door te controleren aan de hand van een lijst met waarden, en het resultaat is een Booleaanse waarde.

Hier is de syntaxis die u moet gebruiken:







waarde IN (waarde1, waarde2, waarde_n);

De gegeven syntaxis neemt de waarde en vergelijkt deze met de waarde1, waarde2 en waarde_n. Het retourneert vervolgens een Booleaanse waarde als er een overeenkomst is. De lijst met waarden die moeten worden gecontroleerd, kan van elk letterlijk type zijn, inclusief tekenreeksen en gehele getallen. Bovendien kunt u een subquery maken, zoals een SELECT-instructie.



Laten we de verschillende manieren bespreken om de PostgreSQL IN-operator te gebruiken.



1. Werken met een subquery

Zoals we eerder vermeldden, kan de te controleren waarde een subquery zijn die de waarden extraheert met behulp van een query-instructie zoals SELECT. Op deze manier kunt u een tabel opvragen om de waarden van een bepaalde kolom te controleren. Laten we de volgende tabel gebruiken voor ons voorbeeld:





Stel dat we alle klanten willen controleren waarvan de “order_id” een van de waarden kan zijn die zijn opgegeven in de querysectie. We voegen de doelwaarde toe als het eerste deel van onze instructie en gebruiken vervolgens de WHERE-clausule met de IN-clausule om de query te maken.



Zo ziet onze zoekopdracht eruit:

PostgreSQL controleert de kolom “order_id” in de tabel “klanten” en retourneert alle records waarvan de “order_id” overeenkomt met een van de records die we tussen haakjes hebben opgegeven.

In eerste instantie hebben we een geval van een lijst met waarden met gehele getallen gebruikt. We kunnen ook de snaren controleren. Houd er rekening mee dat als alle tekenreeksen die u opgeeft niet overeenkomen met de doelwaarde, er niets wordt geretourneerd. Het volgende voorbeeld bevat enkele tekenreeksen die niet in onze tabel voorkomen. Dergelijke tekenreeksen worden overgeslagen en alleen de overeenkomende tekenreeksen worden weergegeven in de volgende uitvoer:

2. Werken met IN(SELECT)

Soms werkt het handmatig opgeven van de zoeklijst niet. U kunt ervoor kiezen om een ​​SELECT-instructie te gebruiken om een ​​lijst met waarden uit uw tabel op te halen en deze te gebruiken om de doelwaarde te vergelijken. Door de volgende tabel aan onze database toe te voegen, kunnen we deze combineren met de vorige tabel “klanten” om onze subquery te maken:

Stel dat we de records uit de tabel 'orders' alleen willen weergeven als de doelwaarde (order_id) in de tabel 'klanten' staat. Hier is de kolom ‘customers.order_id’ onze lijst met waarden en we vergelijken de waarden ervan met die in de kolom ‘orders.order_id’.

In dit geval komen slechts drie vermeldingen overeen met de zoekopdracht en dat is wat we krijgen als uitvoer voor onze IN(SELECT) PostgreSQL-clausule.

3. Werken met de NOT IN PostgreSQL-clausule

Met behulp van de vorige opdracht kunnen we ervoor kiezen om de andere waarden weer te geven die niet overeenkomen met de doelwaarde. Daarvoor doen we het tegenovergestelde van wat de IN-clausule doet. Daarom negeren we het commando om NOT IN te zijn.

Zo schrijven we onze nieuwe opdracht:

Merk op dat we een andere uitvoer krijgen dan die in voorbeeld 2. Dat komt omdat we werken met de NOT IN in plaats van de IN-clausule.

Idealiter kunt u NOT toevoegen wanneer u de resultaten die u krijgt met de PostgreSQL IN-clausule teniet wilt doen. De toepassingen zijn eindeloos. Als u de waarden wilt controleren en snel wilt zien welke overeenkomen, is de IN-clausule uw beste vriend.

Conclusie

De IN-clausule werkt samen met de WHERE-clausule om een ​​doelwaarde te vergelijken met een lijst met waarden. De IN-clausule retourneert een Booleaanse waarde die bevestigt of de doelwaarde overeenkomt in de lijst met waarden die u hebt opgegeven. U kunt de waarden opgeven als letterlijke waarden of de SELECT-instructie gebruiken om een ​​subquery te maken die u kunt gebruiken. We hebben drie voorbeelden gegeven van hoe u de PostgreSQL IN-clausule kunt gebruiken. Hopelijk heeft dit je inzicht gegeven in hoe je met de PostgreSQL IN-clausule moet werken.