Предложение WHERE

Предложение WHERE ограничивает выходной набор теми строками, которые удовлетворяют предикату в этом предложении. Предположим, что у нас имеется следующее соответствие между объемом памяти ПК и типом используемой операционной системы (естественно, условно):

RAM < 64W95
RAM >=64 и < 128W98
RAM >= 128W2k

Если мы захотим отобрать компьютеры по типу ОС (заметим, что такого поля нет в таблице PC), то можно написать следующий оператор:

SELECT *
FROM PC
WHERE 
    CASE
        WHEN ram < 64
        THEN 'W95'
        WHEN ram < 128
        THEN 'W98'
        ELSE 'W2k'
    END ='W98';
🚫
[[ error ]]
[[ column ]]
NULL [[ value ]]

Здесь мы выбираем модели, подходящие для операционной системы W98. Ниже приведен результат выполнения этого запроса.

codemodelspeedramhdcdprice
1123250064512x600
3123350064512x600
8123245064824x350

Это может оказаться полезнее, чем кажется на первый взгляд, если иметь в виду конфиденциальность информации. Например, на клиенте можно формировать запросы, которые будут оперировать такими категориями, как высоко, средне и низко оплачиваемый специалист. То есть сами критерии (оклады) будут спрятаны, скажем, в хранимой процедуре, а через параметр будет передаваться что-то типа символьной строки «средний».