Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.
Данные типа NUMERIC (числа) сравниваются в соответствии с их алгебраическим значением.
Данные типа CHARACTER STRING (символьные строки) сравниваются в соответствии с их алфавитной последовательностью. Если a1a2…an и b1b2…bn - две последовательности символов, то первая "меньше" второй, если а1<b1, или а1=b1 и а2<b2 и т.д. Считается также, что а1а2…аn<b1b2…bm, если n<m и а1а2…аn=b1b2…bn, т.е. если первая строка является префиксом второй. Например, 'folder'<'for', т.к. первые две буквы этих строк совпадают, а третья буква строки 'folder' предшествует третьей букве строки 'for'. Также справедливо неравенство 'bar' < 'barber', поскольку первая строка является префиксом второй.
Данные типа DATETIME (дата/время) сравниваются в хронологическом порядке.
Данные типа INTERVAL (временной интервал) преобразуются в соответствующие типы, а затем сравниваются как обычные числовые значения типа NUMERIC.
Пример. Получить информацию о компьютерах, имеющих частоту процессора не менее 500 Мгц и цену ниже $800:
| SELECT * FROM Pc WHERE speed >= 500 AND price < 800;
|
Запрос возвращает следующие данные:
| code
| model
| speed
| ram
| hd
| cd
| price
|
|
|
|
|
|
| 12x
| 600.0
|
|
|
|
|
|
| 12x
| 600.0
|
|
|
|
|
|
| 12x
| 400.0
|
|
|
|
|
|
| 12x
| 350.0
|
Пример. Получить информацию обо всех принтерах, которые не являются матричными и стоят меньше $300:
| SELECT * FROM Printer WHERE NOT (type = 'matrix') AND price < 300;
|
Результат выполнения запроса:
| code
| model
| color
| type
| price
|
|
|
| y
| Jet
| 270.0
|
|
|
| y
| Jet
| 290.0
|