2.2.4 Диапазоны, специальные символы и пустые значения в предложениях WHEREВ предложениях WHERE могут также указываться диапазоны и шаблоны поиска. Для задания диапазонов используется ключевое слово BETWEEN. Например, оператор SELECT Name, Nationality даст следующий результат: Этот оператор эквивалентен следующему: SELECT Name, Nationality Таким образом, диапазон, задаваемый ключевым словом BETWEEN, включает в себя граничные значения (в данном случае 1700 и 1890). Для задания шаблонов поиска в SQL используется ключевое слово LIKE. Символ подчеркивания (_) представляет любой одиночный символ. С его помощью можно находить значения, удовлетворяющие заданному шаблону: SELECT * FROM ARTIST Подчеркивание означает, что данном месте может стоять любой символ. Результатом этого оператора является следующая таблица: 3 Miro Spanish 1870 1950 Следует обратить особое внимание на такую ситуацию. Чтобы найти всех художников, чье имя начинается на букву 'М' и состоит из четырех символов, нельзя использовать следующий шаблон: SELECT * Результатом будет таблица, состоящая из нулевого количества строк. Причина такого результата заключается в том, что столбец Name имеет тип Char(25). Следовательно, каждое имя будет содержать двадцать пять символов, а не четыре, как предполагалось в шаблоне. Символ процента (%) представляет последовательность из одного или нескольких произвольных символов. Запрос, возвращающий строки художников, чьи имена начинаются с буквы 'М', можно записать следующим образом: SELECT * Результат будет следующим: Если требуется найти всех художников, чьи национальности заканчиваются на букву 'h'. можно использовать символ процента следующим образом: SELECT * FROM ARTIST Результат будет таким: Для поиска пустых значений в предложении WHERE служит конструкция IS NULL. Следующий запрос выдает имена и национальности всех художников, у которых не указан год рождения: SELECT Name, Nationality Результат запроса будет таким:
Сортировка результатов Порядок строк в таблице, возвращаемой оператором SELECT, является произвольным. Если нужно отсортировать строки результата, это можно сделать с помощью конструкции ORDER BY. Например, следующий запрос возвращает имена и национальности художников, отсортированных в алфавитном порядке по именам: SELECT Name, Nationality FROM ARTIST Результатом будет следующая таблица:
По умолчанию сортировка в SQL производится в порядке возрастания. Для явного указания порядка сортировки можно использовать ключевые слова ASC (по возрастанию) и DESC (по убыванию). Например, следующий запрос отсортирует художников по именам в обратном порядке: SELECT Name, Nationality Результат будет таким:
Сортировать можно и более чем по одному столбцу. Чтобы отсортировать список имен художников и их национальностей сначала по национальностям в обратном порядке, а потом внутри каждой национальности по именам в прямом порядке, можно было бы использовать такой запрос: SELECT Name, Nationality Это приведет к следующему результату:
|