Параметр WHERE в мові SQL виконує фільтрацію рядків які отримуються після запиту, згідно з заданими умовами. Умови задаються предикатами.

Приклади

WHERE це зарезервоване слово в SQL.

Пункт WHERE використовується разом з виразом SQL DML, і має наступну форму: SQL-DML-Statement FROM table_name WHERE predicate повертаються всі рядки для яких предикат в пункті WHERE Істина. Рядки для яких предикат має значення Хиба або Невідомо (NULL) вважаються такими, що не відповідають критерію відбору.

Наступний запит повертає рядки з mytable для яких mycol більше ніж 100. SELECT * FROM mytable WHERE mycol > 100

Натупний вираз DELETE видаляє рядки, з mytable де mycol або NULL, або дорівнює 100. DELETE FROM mytable WHERE mycol IS NULL OR mycol = 100

Предикати

Прості предикати використовують операцію з набору =, <>, >, >=, <, <=, IN, BETWEEN, LIKE, IS NULL або IS NOT NULL.

При потребі предикати можуть бути відокремлені дужками. Ключові слова AND і OR можуть бути використані для об'єднання двох предикатів в один новий. Якщо утворюється багато комбінацій, то дужки можна використати для визначення порядку обчислення. Без дужок AND має вищий пріоритет ніж OR.

Наступний приклад видаляє рядки з mytable де значення mycol більше ніж 100 та значення item дорівнює рядку 'Hammer':

DELETE FROM mytable WHERE mycol > 100 AND item = 'Hammer'

IN IN знаходить всі значення, що присутні в поданому наборі. SELECT ename WHERE ename IN ('value1', 'value2', ...) Тотожно з SELECT ename WHERE ename='value1' OR ename='value2' окрім того, що в другому варіанті можливо порівнювати різні стовпці, в той час при використанні IN ні.

BETWEEN BETWEEN знаходить всі значення в заданих межах. SELECT ename WHERE ename BETWEEN 'value1' AND 'value2' Будуть відібрані всі рядки зі значеннями між 'value1' та 'value2', включно.

LIKE LIKE знаходить рядки, що відповідають певному шаблону.

Завершальна підстановка Знаходить будь-який рядок, що починається з літери 'S' SELECT ename FROM emp WHERE ename LIKE 'S%'; Початкова підстановка Знаходить будь-який рядок, що завершується літерою 'S' SELECT ename FROM emp WHERE ename LIKE '%S'; Комбінація підстановок Знайти будь-який рядок з літерою 'S' SELECT ename FROM emp WHERE ename LIKE '%S%'; Односимвольна підстановка Знайти будь-який рядок, що містить літеру 'A' з будь-яким наступним символом і потім 'E' SELECT ename FROM emp WHERE ename LIKE '%A_E%'; SQL програмісти мають бути обережними з використанням предиката LIKE через його негативний вплив на швидкодію.