Продвижение сайта по поисковым запросам, контекстная реклама, качественный копирайтинг и рерайтинг, создание сайта под ключ, QA процедуры и аудит в ИТ, бизнес анализ в Киеве, Украина.

Поиск

Админ

Упорядочение вывода по номеру столбца


Упорядочение вывода по номеру столбца

Вместо имен столбцов вы можете использовать их порядковые номера для указания поля, используемого в упорядочении вывода. Эти номера могут ссылаться не на порядок столбцов в таблице, а на их порядок в выводе. Другими словами, поле упомянутое в предложении SELECT первым, для ORDER BY — это поле 1, независимо от того каким по порядку оно стоит в таблице. Например, вы можете использовать следующую команду, чтобы увидеть определенные поля таблицы Продавцов, упорядоченными в порядке убывания к наименьшему значению комиссионных (вывод показан на Рисунке 7.7):

SELECT sname, comm
FROM Salespeople
GROUP BY 2 DESC;

===============  SQL Execution Log ============
| (SELECT sname, comm                           |
| FROM Salespeople                              |
| ORDER BY 2 DESC;                              |
| ============================================= |
|    sname       comm                           |
|   --------   --------                         |
|   Peel           0.17                         |
|   Serres         0.13                         |
|   Rifkin         0.15                         |
===============================================

Рисунок 7.7: Упорядочение использующее номера

Одна из основных целей этой возможности ORDER BY — дать вам возможность использовать GROUP BY со столбцами вывода также как и со столбцами таблицы. Столбцы, производимые агрегатной функцией, константы или выражения в предложении SELECT запроса, абсолютно пригодны для использования с GROUP BY, если они ссылаются к ним с помощью номера. Например, давайте сосчитаем Заказы каждого из наших продавцов, и выведем результаты в порядке убывания, как показано в Рисунке 7.8:

SELECT snum, COUNT (DISTINCT onum)
FROM Orders
GROUP BY snum
ORDER BY 2 DESC;

===============  SQL Execution Log ==============
| SELECT snum, odate, MAX (amt)                   |
| FROM Orders                                     |
| GROUP BY snum                                   |
| ORDER BY 2 DESC;                                |
| =============================================== |
|    snum                                         |
|   -----     ----------                          |
|    1001             3                           |
|    1002             3                           |
|    1007             2                           |
|    1003             1                           |
|    1004             1                           |
=================================================

Рисунок 7.8. Упорядочение с помощью столбца вывода.

В этом случае, вы должны использовать номер столбца, так как столбец вывода не имеет имени; и вы не должны использовать саму агрегатную функцию. Строго говоря, по правилам ANSI SQL, следующее не будет работать, хотя некоторые системы и пренебрегают этим требованием:

SELECT snum, COUNT (DISTINCT onum)
FROM Orders
GROUP BY snum
GROUP BY COUNT (DISTINCT onum) DESC;

Это будет отклонено большинством систем!

Упорядочение с помощью оператора NULL

Если имеются пустые значения (NULL) в поле, которое вы используете для упорядочивания вашего вывода, они могут или следовать, или предшествовать каждому другому значению в поле. Это — возможность, которую ANSI оставил для индивидуальных программ. Данная программа использует ту или иную форму.

Популярность: 4%




Оставить комментарий или два


Навигация

Блог / Главная / Разработка / Упорядочение вывода по номеру столбца

Инфо

Запись опубликовал admin 27 апреля 2010 года и разместил в рубрике Разработка.   Запись имеет метки:   К статье пока нет комментариев. Вы можете быть первым.  

Случайные записи

Предложение HAVING sql Бухгалтер – вакансия от SEOLUX Первичные ключи более чем одного поля sql Упорядочение вывода по номеру столбца