Оператор |
Синтаксис |
Описание |
= | 'строка!' = ' строка2' | Возвращает true, если первая строка точно совпадает со второй |
! = |
'строка!' != ' строка2' |
Возвращает true, если первая строка не совпадает со второй |
о |
'строка!' <> ' строка2' |
Идентичен оператору != |
< |
'строка!' < ' строка2' |
Возвращает true, если при лексикографической сортировке первая строка предшествует второй |
<= |
'строка!' <= ' строка2' |
Возвращает true, если при лексикографической сортировке первая строка предшествует второй или их значения совпадают |
> |
'строка!' > ' строка2' |
Возвращает true, если при лексикографической сортировке вторая строка предшествует первой |
>= |
'строка!' >= ' строка2' |
Возвращает true, если при лексикографической сортировке вторая строка предшествует первой или их значения совпадают |
Все операторы сравнения строк возвращают логическое значение (true или false). Лексикографическая сортировка, упоминаемая в табл. 5.1, последовательно сравнивает символы строк и определяет, какой из символов «больше» другого. Если начальные символы двух строк совпадают, проверяются следующие символы (слева направо). Перебор продолжается до тех пор, пока не будут найдены два различающихся символа. В этом алгоритме сортировки «больший» символ выбирается сравнением ASCII-кодов, как показывает следующий пример:
booktown=# SELECT letter, ascii(letter)
booktown-# FROM text_sorting
booktown-# ORDER BY letter ASC;
letter ascii
0 48
1 49
2 50
3 51
A 65
В 66
С 67
D 68
a 97
b 98
с 99
d I 100
(12 rows)
Если вы не уверены в порядке сортировки того или иного символа, воспользуйтесь функцией ascii О для получения его ASCII-кода (функция asci i () описана ниже в разделе «Функции»). В листинге 5.3 из таблицы books выбираются названия всех книг, первая буква которых при сортировке предшествует символу «D».