Предикаты сравнения

Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.

Данные типа NUMERIC (числа) сравниваются в соответствии с их алгебраическим значением.

Данные типа CHARACTER STRING (символьные строки) сравниваются в соответствии с их алфавитной последовательностью. Если а1а2…аn и в1в2…вn — две последовательности символов, то первая «меньше» второй, если а1 < в1, или а1 = в1 и а2 < в2 и т. д. Считается также, что а1а2…аn < в1в2…вm, если n < m и а1а2…аn = в1в2…вn, то есть если первая строка является префиксом второй. Например, ‘folder’ < ‘for’, так как первые две буквы этих строк совпадают, а третья буква строки ‘folder’ предшествует третьей букве строки ‘for’. Также справедливо неравенство ‘bar’ < ‘barber’, поскольку первая строка является префиксом второй.

Данные типа DATETIME (дата/время) сравниваются в хронологическом порядке. Данные типа INTERVAL (временной интервал) преобразуются в соответствующие типы, а затем сравниваются как обычные числовые значения типа NUMERIC.

Пример 5.2.1

Получить информацию о компьютерах, имеющих частоту процессора не менее 500 МГц и цену ниже $800:
SELECT *
FROM PC
WHERE speed >= 500 AND
price < 800;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]

Запрос возвращает следующие данные

codemodelspeedramhdcdprice
1123250064512x600
3123350064512x600
71232500321012x400
101260500321012x350

Пример 5.2.2

Получить информацию обо всех принтерах, которые не являются матричными и стоят меньше $300:
SELECT *
FROM printer
WHERE NOT (type = 'matrix') AND
price < 300;
mssql
🚫
[[ error ]]
[[ column ]]
[[ value ]]

Результат выполнения запроса:

codemodelcolortypeprice
21433yJet270
31434yJet290

Рекомендуемые упражнения: 108