Klauzula IN PostgreSQL

Klauzula In Postgresql



Istnieje wiele klauzul, które można wykorzystać w PostgreSQL. Klauzula IN jest jedną z takich klauzul i ma wiele zalet, jeśli zrozumiesz, jak jej używać, zwłaszcza w połączeniu z klauzulą ​​WHERE. Klauzula IN działa głównie z instrukcją SELECT w celu filtrowania sposobu wykonania zapytania. Po wykonaniu klauzula IN sprawdza określoną listę, czy spełnia kryteria, i wyświetla pasujące wartości.

Zrozumienie sposobu pracy z klauzulą ​​PostgreSQL IN

W PostgreSQL używasz klauzuli IN z klauzulą ​​WHERE do filtrowania danych wyjściowych poprzez sprawdzanie listy wartości, a wynikiem jest wartość logiczna.

Oto składnia, której należy użyć:







wartość IN (wartość1, wartość2, wartość_n);

Podana składnia pobiera wartość i sprawdza ją względem wartości 1, wartości 2 i wartości_n. Następnie zwraca wartość logiczną, jeśli istnieje dopasowanie. Lista wartości do sprawdzenia może być dowolnego typu literałowego, w tym ciągów znaków i liczb całkowitych. Poza tym możesz utworzyć podzapytanie, takie jak instrukcja SELECT.



Omówmy różne sposoby użycia operatora PostgreSQL IN.



1. Praca z podzapytaniem

Jak wspomnieliśmy wcześniej, wartością do sprawdzenia może być podzapytanie, które wyodrębnia wartości za pomocą instrukcji zapytania, takiej jak SELECT. W ten sposób możesz wysłać zapytanie do tabeli, aby sprawdzić wartości danej kolumny. Dla naszego przykładu wykorzystajmy poniższą tabelę:





Załóżmy, że chcemy sprawdzić wszystkich klientów, których „id_zamówienia” może mieć dowolną wartość określoną w sekcji zapytania. Dodajemy wartość docelową jako pierwszą część naszej instrukcji, a następnie używamy klauzuli WHERE z klauzulą ​​IN, aby utworzyć zapytanie.



Oto jak wygląda nasze zapytanie:

PostgreSQL sprawdza kolumnę „id_zamówienia” w tabeli „klienci” i zwraca wszystkie rekordy, których „id_zamówienia” pasuje do któregokolwiek z tych, które podaliśmy w nawiasach.

W pierwszym przypadku użyliśmy przypadku całkowitej listy wartości. Możemy także sprawdzić względem ciągów. Pamiętaj, że jeśli wszystkie określone ciągi nie odpowiadają wartości docelowej, nic nie zostanie zwrócone. Poniższy przykład zawiera ciągi, których nie ma w naszej tabeli. Takie ciągi zostaną pominięte i w następującym wyniku zostaną wyświetlone tylko pasujące ciągi:

2. Praca z IN(WYBIERZ)

Czasami ręczne określenie listy wartości może nie działać. Możesz użyć instrukcji SELECT, aby pobrać listę wartości z tabeli i użyć ich do sprawdzenia wartości docelowej. Dodając do naszej bazy poniższą tabelę możemy połączyć ją z poprzednią tabelą „klienci” i stworzyć nasze podzapytanie:

Załóżmy, że chcemy wyświetlić rekordy z tabeli „zamówienia” tylko wtedy, gdy wartość docelowa (id_zamówienia) znajduje się w tabeli „klienci”. Tutaj kolumna „customers.order_id” jest naszą listą wartości i porównujemy jej wartości z wartościami w kolumnie „orders.order_id”.

W tym przypadku tylko trzy wpisy pasują do wyszukiwania i to właśnie otrzymujemy jako wynik naszej klauzuli IN(SELECT) PostgreSQL.

3. Praca z klauzulą ​​NOT IN PostgreSQL

Korzystając z poprzedniego polecenia, możemy wybrać wyświetlanie innych wartości, które nie odpowiadają wartości docelowej. W tym celu postępujemy odwrotnie niż w przypadku klauzuli IN. Dlatego negujemy polecenie bycia NIE.

Oto jak piszemy nasze nowe polecenie:

Zauważ, że otrzymaliśmy inny wynik niż w przykładzie 2. Dzieje się tak, ponieważ pracujemy z klauzulą ​​NOT IN zamiast IN.

W idealnym przypadku możesz dodać NOT, gdy chcesz zanegować wyniki uzyskane za pomocą klauzuli PostgreSQL IN. Zastosowań nie ma końca. Jeśli chcesz szybko sprawdzić wartości i dopasować je, klauzula IN jest Twoim najlepszym przyjacielem.

Wniosek

Klauzula IN współpracuje z klauzulą ​​WHERE, aby sprawdzić wartość docelową na liście wartości. Klauzula IN zwraca wartość logiczną, która potwierdza, czy wartość docelowa jest zgodna z określoną listą wartości. Możesz określić wartości jako literały lub użyć instrukcji SELECT, aby utworzyć podzapytanie do użycia. Podaliśmy trzy przykłady użycia klauzuli PostgreSQL IN. Mamy nadzieję, że dało ci to wgląd w zrozumienie, jak pracować z klauzulą ​​IN PostgreSQL.