Выборка с упорядочением

Выдать номера и состояния поставщиков, находящихся в Париже, в порядке убывания их состояния:

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 Гайка Винт Кулачок Красный Красный Голубой   Лондон Лондон Париж

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: