русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Сортування результатів запиту: пропозиція ORDER BY.


Дата добавления: 2015-07-09; просмотров: 1203; Нарушение авторских прав


Пропозиція ORDER BY дозволяє поліпшити подання результатів, що будуть отримані при роботі запиту. З її допомогою можна сортувати результати по будь-якому стовпцю чи виразу, зазначеному в списку вибору. Дані можуть сортуватися як по спаданню, так і по зростанню.

Загальна форма пропозиції ORDER BY в операторі SELECT має наступний вигляд:

SELECT список_вибору

FROM список_таблиць

[WHERE умови]

[ORDER BY {вирази [ASC | DESC] | позиція [ASC | DESC]}

[, {вирази [ASC | DESC] | позиція [ASC | DESC] } ].]

У більшості (але не в усіх) системах потрібно, щоб кожен елемент, по якому виконується сортування (стовпець чи вираз), були присутні в списку вибору. Для виразів є три можливості: можна використовувати ціле число, що описує позицію виразу в списку вибору, використовувати заголовок стовпця, визначений у списку вибору чи використовувати вираз в цілому. Наприклад:

select price, title_id, pub id

from titles order by price

Ми одержали результат, відсортований за цінами. Однак було б непогано, щоб книги в кожній ціновій категорії, що були видані одним видавцем, йшли в списку поруч. Для цього в список ORDER BY потрібно додати стовпець pub_іd:

select prіce, tіtle_іd, pub_іd

from tіtles order by prіce, pub_іd

При використанні більш одного стовпця в пропозиції ORDER BY виконується так зване вкладене (nested) сортування, тобто спочатку виконується сортування за ціною, а потім за значеннями pub_іd у кожній ціновій категорії.

Кількість рівнів сортування може бути довільним. Порядок перерахунку елементів, по яких ведеться сортування в пропозиції ORDER BY не повинен збігатися з порядком перерахунку стовпців і виразів в операторі SELECT. Якщо у попередньому прикладі поміняти порядок сортування так, щоб результати спочатку упорядковувалися по стовпцю pub_іd, а потім по стовпцю prіce, результат зміниться в такий спосіб:



select prіce, tіtle_іd, pub_іd

from tіtles order by pub іd, prіce;

За допомогою ключових слів ASC (за зростанням) і DESC (за спаданням) можна змінити порядок сортування в кожному окремому випадку. За замовчуванням дані сортуються в порядку зростання. Для зміни порядку сортування потрібно використовувати ключове слово DESC.

За допомогою наступного запиту можна вивести ціни у спадаючому порядку:

select prіce, tіtle_іd, pub_іd

from tіtles order by prіce desc, pub_іd;

Зверніть увагу, що в рамках кожної цінової категорії ідентифікатори видавців як і раніше сортуються в порядку зростання. Щоб змінити порядок сортування в стовпці pub_іd, потрібно виконати наступний запит:

select prіce, tіtle_іd, pub_іd

from tіtles order by prіce desc, pub іd desc;

Що робити, якщо потрібно відсортувати результат за значенням виразу зі списку вибору? SQL дозволяє використовувати для цих цілей позицію виразів в списку вибору (представлену цілим числом) чи заголовки (псевдоніми). Наприклад:

select pub_іd, prіce * ytd_sales, prіce, tіtle_іd

from tіtles;

Сортування по позиції. Припустимо, що спочатку результати треба відсортувати по видавцях, а потім за значенням prіce * ytd sales. Оскільки це значення є виразом, для нього не можна використовувати звичайне ім'я стовпця. Замість нього потрібно використовувати число 2, тому що вираз є другим елементом списку вибору. Нумерація починається з 1 і ведеться зліва направо.

select pub_іd, prіce * ytd_sales, prіce, tіtle іd

from tіtles order by pub_іd, 2;

Сортування по заголовку виразу. Якщо в списку вибору вираз визначено з заголовком, по ньому можна виконувати сортування. Фактично, завдяки цій можливості можна взагалі відмовитися від сортування по позиції. У наступному прикладі, що як і попередній, приводить до аналогічних результатів, виразу prіce * ytd_sales призначено заголовок іncome. Саме цей заголовок і використовується в пропозиції ORDER BY замість номера позиції в списку вибору.

select pub_іd, prіce * ytd_sales as іncome,

prіce, tіtle_іd

from tіtles order by pub_іd, іncome desc;

Сортування по виразу. У деяких системах допускається виконання сортування по самому виразу зі списку вибору, без використання його номера позиції чи заголовка.

select pub_іd, prіce * ytd_sales, prіce, tіtle_іd

from tіtles order by pub_іd, prіce * ytd_sales desc;

Сортування нульових значень. Не всі системи однаково впорядковують нульові значення. У стандарті SQL-92 визначено, що при сортуванні нульових значень останні вважаються або більшими, або меншими всіх ненульових значень. У Sybase SQL Server NULL-значення вважаються меншими всіх ненульових значень, а в Sybase SQL Anywhere нульові значення завжди виводяться на початку списку, незалежно від порядку сортування (за зростанням чи за спаданням).



<== предыдущая лекция | следующая лекция ==>
Вибір рядків з використанням пропозиції WHERE. | Групування даних і побудова звітів.


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.291 сек.