6.1. Дополнительные возможности команды SELECT
Кроме символа «%» в шаблоне может использоваться и символ подчеркивания — «_»,
который соответствует в точности одному любому символу. В качестве примера най-
дем в таблице «Аэропорты» те из них, которые имеют названия длиной три символа
(буквы). С этой целью зададим в качестве шаблона строку, состоящую из трех симво-
лов «_».
SELECT * FROM airports WHERE airport_name LIKE '___';
-[ RECORD 1 ]-+-------------------
airport_code | UFA
airport_name | Уфа
city
| Уфа
longitude
| 55.874417
latitude
| 54.557511
timezone
| Asia/Yekaterinburg
Существует ряд операторов для работы с
регулярными выражениями POSIX. Эти
операторы имеют больше возможностей, чем оператор LIKE. Для того чтобы вы-
брать, например, самолеты компаний Airbus и Boeing, можно сделать так:
SELECT * FROM aircrafts WHERE model ~ '^(A|Boe)';
aircraft_code |
model
| range
---------------+-----------------+-------
773
| Boeing 777-300 | 11100
763
| Boeing 767-300 | 7900
320
| Airbus A320-200 | 5700
321
| Airbus A321-200 | 5600
319
| Airbus A319-100 | 6700
733
| Boeing 737-300 | 4200
(6 строк)
Оператор ~ ищет совпадение с шаблоном с учетом регистра символов. Символ «^»
в начале регулярного выражения означает, что поиск совпадения будет привязан
к началу строки. Если же требуется проверить наличие такого символа
в составе
строки, то перед ним нужно поставить символ обратной косой черты «\». Выражение
в круглых скобках означает альтернативный выбор между значениями, разделяемы-
ми символом «|». Поэтому в выборку попадут значения, начинающиеся либо на «A»,
либо на «Boe».
Для инвертирования смысла оператора ~ нужно перед ним добавить знак «!». В каче-
стве примера отыщем модели самолетов, которые не завершаются числом 300.
Достарыңызбен бөлісу: