Operator IN w SQL

Słownik kwalifikacji INF.03 - Tworzenie i administrowanie stronami i aplikacjami internetowymi oraz bazami danych

Operator IN w SQL

Operator IN w SQL służy do sprawdzania, czy wartość z danej kolumny znajduje się na liście podanych wartości. Jest najczęściej używany w klauzuli WHERE, czyli przy filtrowaniu rekordów.

Składnia

SELECT kolumna1, kolumna2
FROM tabela
WHERE kolumna IN (wartosc1, wartosc2, wartosc3);

Warunek jest spełniony, jeśli wartość kolumny jest równa którejkolwiek wartości z listy.

Przykład

SELECT imie, pesel, wiek
FROM dane
WHERE wiek IN (18, 30);

To zapytanie wybierze tylko te rekordy, w których kolumna wiek ma wartość 18 albo 30. Nie oznacza to przedziału od 18 do 30.

Czyli zostaną wybrane osoby:

  • mające dokładnie 18 lat,
  • mające dokładnie 30 lat.

Nie zostaną wybrane osoby mające np. 19, 25 ani 29 lat.

IN a OR

Operator IN można często zastąpić kilkoma warunkami połączonymi operatorem OR.

WHERE wiek IN (18, 30)

jest równoważne:

WHERE wiek = 18 OR wiek = 30

IN a BETWEEN

Nie należy mylić IN z BETWEEN.

WHERE wiek BETWEEN 18 AND 30

oznacza wartości od 18 do 30 włącznie, czyli np. 18, 19, 20, ..., 30.

Natomiast:

WHERE wiek IN (18, 30)

oznacza tylko dwie konkretne wartości: 18 i 30.

Najważniejsze do egzaminu

IN (18, 30) oznacza: wartość jest równa 18 lub 30, a nie: „wartość jest w przedziale od 18 do 30”.