Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Предложение ORDER IN GROUP используется вместе с инструкцией GROUP ON, которая возвращает результирующие наборы в группах. Предложение ORDER IN GROUP позволяет отсортировать каждую возвращаемую группу по-разному. Если вы группируетесь в System.Kind, например, можно сортировать все документы по System.Document.LastAuthor, всем музыкальным файлам по System.Music.AlbumArtist и всем сообщениям электронной почты по System.Message.FromName.
Синтаксис
Ниже приведен синтаксис предложения ORDER IN GROUP:
GROUP ON <group column and optional ranges>
OVER (SELECT ... FROM SystemIndex
ORDER
IN GROUP '<group name>' BY <column> [<direction>] [,<column> [<direction>]]
[IN GROUP '<group name>' BY <column> [<direction>] [,<column> [<direction>]] ]
[BY <column> [<direction>] [,<column> [<direction>]] ])
Описатель имени группы — это диапазон или известное значение из столбца группы, как указано в инструкции GROUP ON. Например, известные значения System.Photo.ISOSpeed включают ISO-100, ISO-200 и т. д. Диапазон для System.Photo.DateTaken будет включать "2006-1-1" и "2007-1-1" для инструкции, например GROUP ON System.ItemDate ['2006-1-1', '2007-1-1'].
Описатель столбца должен быть допустимым столбцом, указанным в инструкции GROUP ON или SELECT. Можно включить несколько столбцов, разделенных запятыми. Например, если вы группируетесь в System.Photo.ISOSpeed, можно сортировать все фотографии ISO-100, сначала System.Photo.ShutterSpeed, а затем System.Photo.Aperture.
Необязательный описатель направления может быть asC для возрастания (низкого до высокого) или DESC для убывание (высокий до низкого). Если не указать описатель направления, используется значение по умолчанию, возрастание. Если указать несколько столбцов, но не указывать все направления, то направление, указываемое последним, применяется к каждому последовательному столбцу, пока не будет явно изменено направление.
Диапазоны или значения, которые явно не указаны в предложении ORDER GROUP IN, отсортированы по возрастанию по значениям в столбце GROUP ON.
Примеры
В следующем примере группы результатов по свойству System.Kind. Запрос будет упорядочить группу "program" по имени приложения и группе "музыка" по названию альбома и номеру трека. Группа NULL будет упорядочена по имени элемента. Все остальные группы будут упорядочены по дате элемента.
GROUP ON System.Kind
OVER (SELECT System.ItemUrl, System.Music.AlbumTitle, System.Music.TrackNumber, System.ItemName, System.ItemDate, System.Kind FROM SystemIndex
ORDER
IN GROUP 'program' BY System.ApplicationName ASC
IN GROUP 'music' BY System.Music.AlbumTitle ASC, System.Music.TrackNumber ASC
IN GROUP NULL BY System.ItemName
BY System.ItemDate DESC)
Следующий пример группирует результаты по свойству System.ItemDate, а затем сортирует каждую группу по URL-адресу элемента, типу или имени.
GROUP ON System.ItemDate ['2006-1-1', '2007-1-1', '2008-1-1']
OVER (SELECT System.ItemUrl, System.ItemName, System.ItemDate System.Kind FROM SystemIndex
ORDER
IN GROUP MINVALUE BY System.ItemUrl ASC
IN GROUP '2007-1-1' BY System.Kind
IN GROUP NULL BY System.ItemName)
Результаты предыдущего запроса будут возвращены в пяти группах и отсортированы, как описано в следующей таблице.
| Группа | Описание | Сортировка по |
|---|---|---|
| MINVALUE | Элементы с датами до 2006-1-1 | Сортировка по URL-адресу элемента в порядке возрастания |
| 2006-1-1 | Элементы с датами в 2006-1-1, но до 2007-1-1 | Сортировка по дате элемента в порядке возрастания |
| 2007-1-1 | Элементы с датами или после 2007-1-1, но до 2008-1-1 | Сортировка по типу в порядке возрастания |
| 2008-1-1 | Элементы с датами или после 2008-1-1 | Сортировка по дате элемента в порядке возрастания |
| NULL | Элементы без значения в столбце System.ItemDate | Сортировка по имени элемента в порядке возрастания |
Связанные разделы
-
Справочник