|
![]() | Predikát BETWEEN | ![]() | Podmínky a predikáty | Predikát EXISTS | ![]() |
predikát_IN ::= výraz1 [NOT] IN {( výraz { , výraz }… ) | ( dotazový_výraz )}
Predikát IN říká, zda hodnota výrazu1 je mezi hodnotami uvedených výrazů nebo mezi hodnotami v odpovědi na dotazový výraz (subdotaz).
Odpověď na dotazový výraz musí být skalární (musí obsahovat jediný sloupec). Typ odpovědi na subdotaz a typy všech výrazů musí být porovnatelné s typem výrazu1.
Příklad použití (výčet hodnot):
Vybrat faktury z lichých měsíců:
SELECT *
FROM Faktury
WHERE Month(dat1) IN (1,3,5,7,9,11)
Příklad použití (subdotaz):
Vyberte faktury, které patří firmám z Prahy
SELECT Faktury.cislo,Faktury.firma
FROM Faktury
WHERE firma IN (SELECT cislo
FROM Firmy
WHERE mesto LIKE 'Praha%')
Stejný výsledek lze dostat pomocí JOINu
SELECT DISTINCT Faktury.cislo, Faktury.firma
FROM Faktury, Firmy
WHERE Firmy.cislo=Faktury.firma
AND (Firmy.mesto.='Praha')
![]() | Predikát BETWEEN | ![]() | Podmínky a predikáty | Predikát EXISTS | ![]() |