Предикаты сравнения
Предикат сравнения представляет собой два выражения, соединяемых оператором сравнения. Имеется шесть традиционных операторов сравнения: =, >, <, >=, <=, <>.
Данные типа 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
SELECT *
FROM PC
WHERE speed >= 500 AND
price < 800;
[[ column ]] |
---|
[[ value ]] |
Запрос возвращает следующие данные
code | model | speed | ram | hd | cd | price |
---|---|---|---|---|---|---|
1 | 1232 | 500 | 64 | 5 | 12x | 600 |
3 | 1233 | 500 | 64 | 5 | 12x | 600 |
7 | 1232 | 500 | 32 | 10 | 12x | 400 |
10 | 1260 | 500 | 32 | 10 | 12x | 350 |
Пример 5.2.2
SELECT *
FROM printer
WHERE NOT (type = 'matrix') AND
price < 300;
[[ column ]] |
---|
[[ value ]] |
Результат выполнения запроса:
code | model | color | type | price |
---|---|---|---|---|
2 | 1433 | y | Jet | 270 |
3 | 1434 | y | Jet | 290 |
Рекомендуемые упражнения: 108