ВЫБОРКА С УПОРЯДОЧЕНИЕМ
Выдать номера и состояния поставщиков, находящихся в Париже, в порядке убывания их состояния:
SELECT НОМЕР_ПОСТАВЩИКА, СОСТОЯНИЕ
FROM S
WHERE ГОРОД = 'Париж'
ORDER BY СОСТОЯНИЕ DESC;
Результат:
НОМЕР_ПОСТАВЩИКА | СОСТОЯНИЕ |
S3 S2 |
В общем случае не гарантируется, что результирующая таблица будет упорядочена каким-либо определенным образом. Здесь, однако, пользователь специфицировал, что результат перед тем, как он будет показан, должен быть организован в определенной последовательности. Упорядочение может быть специфицировано таким же образом, как в предложении CREATE INDEX (см. раздел 3.3):
имя—столбца [упорядочение] [,имя—столбца [упорядочение]]..., где «упорядочение», как и ранее, это ASC (возрастание) или DECS (убывание), и по умолчанию принимается ASC. Каждое «имя—столбца» должно идентифицировать некоторый столбец результирующей таблицы. Поэтому, например, следующее предложение недопустимо:
SELECT НОМЕР_ПОСТАВЩИКА
FROM S
ORDER BY ГОРОД;
Разрешается также идентифицировать столбцы во фразе ORDER BY(упорядочить по) «номерами—столбцов» вместо «имен—столбцов», где «номер—столбца» указывает порядковую позицию (слева направо) данного столбца в результирующей таблице запроса. Благодаря этому возможно упорядочение результата на основе «вычисляемых столбцов», которые не обладают именем. Например, упорядочить результат примера 4.2.3 по возрастанию номера детали в рамках возрастания веса в граммах:
SELECT НОМЕР_ДЕТАЛИ, ВЕС*454
FROM P
ORDER BY 2, НОМЕР_ДЕТАЛИ; [или ORDER BY 2,1;]
Здесь «2» ссылается на второй столбец результирующей таблицы.
Получаем:
НОМЕР_ДЕТАЛИ | |
Р1 Р5 Р4 Р2 РЗ Р6 |
ВЫБОРКА С ИСПОЛЬЗОВАНИЕМ BETWEEN(между)
Выдать сведения о деталях, вес которых находится в диапазоне от 16 до 19 включительно:
SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ, ЦВЕТ, ВЕС, ГОРОД
FROM P
WHERE ВЕС BETWEEN 16 AND 19;
Имеем следующий результат:
НОМЕР_ДЕТАЛИ | НАЗВАНИЕ | ЦВЕТ | ВЕС | ГОРОД |
Р2 РЗ Р6 | Болт Винт Блюм | Зеленый Голубой Красный | Париж Рим Лондон |
Может быть также специфицировано NOT BETWEEN (не принадлежит диапазону между), например:
SELECT НОМЕР_ДЕТАЛИ, НАЗВАНИЕ. ЦВЕТ, ВЕС, ГОРОД
FROM P
WHERE ВЕС NOT BETWEEN 16 AND 19;
Получаем тогда:
НОМЕР_ДЕТАЛИ | НАЗВАНИЕ | ЦВЕТ | ВЕС | ГОРОД |
Р1 Р4 Р5 | Гайка Винт Кулачок | Красный Красный Голубой | Лондон Лондон Париж |