ORDER IN GROUP Clause
La clause ORDER IN GROUP est utilisée conjointement avec l’instruction GROUP ON , qui retourne des jeux de résultats dans des groupes. La clause ORDER IN GROUP vous permet de trier chaque groupe retourné d’une manière différente. Si vous regroupez sur System.Kind, par exemple, vous pouvez trier tous les documents par System.Document.LastAuthor, tous les fichiers musicaux par System.Music.AlbumArtist et tous les e-mails par System.Message.FromName.
Syntaxe
Voici la syntaxe de la clause 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>]] ])
Le spécificateur de nom de groupe est une plage ou une valeur connue de la colonne de groupe, comme spécifié dans l’instruction GROUP ON. Par exemple, les valeurs connues pour System.Photo.ISOSpeed incluent « ISO-100 », « ISO-200 », etc. Une plage pour System.Photo.DateTaken inclut « 2006-1-1 » et « 2007-1-1 » pour une instruction telle que GROUP ON System.ItemDate ['2006-1-1', '2007-1-1'].
Le spécificateur de colonne doit être une colonne valide spécifiée dans l’instruction GROUP ON ou SELECT. Vous pouvez inclure plusieurs colonnes, séparées par des virgules. Par exemple, si vous regroupez sur System.Photo.ISOSpeed, vous pouvez trier toutes les photos ISO-100, d’abord par System.Photo.ShutterSpeed, puis par System.Photo.Aperture.
Le spécificateur de direction facultatif peut être ASC pour l’ascendant (faible à élevé) ou DESC pour la décroissante (élevé à faible). Si vous ne fournissez pas de spécificateur de direction, la valeur par défaut, croissant, est utilisée. Si vous spécifiez plusieurs colonnes, mais que vous ne spécifiez pas toutes les directions, la direction que vous spécifiez en dernier est appliquée à chaque colonne successive jusqu’à ce que vous modifiez explicitement la direction.
Les plages ou valeurs qui ne sont pas explicitement spécifiées dans une clause ORDER GROUP IN sont triées par ordre croissant par les valeurs de la colonne GROUP ON.
Exemples
L’exemple suivant regroupe les résultats par la propriété System.Kind. La requête triait le groupe « program » par le nom de l’application et le groupe « musique » par titre de l’album et numéro de piste. Le groupe NULL est classé en fonction du nom de l’élément. Tous les autres groupes sont classés en fonction de la date de l’élément.
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)
L’exemple suivant regroupe les résultats par la propriété System.ItemDate, puis trie chaque groupe par URL d’élément, type ou nom.
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)
Les résultats de la requête précédente sont retournés en cinq groupes et triés comme décrit dans le tableau suivant.
Groupe | Description | Trié par |
---|---|---|
MINVALUE | Éléments dont la date est antérieure à 2006-1-2006 | Trié par l’URL de l’élément, dans l’ordre croissant |
2006-1-1 | Éléments ayant des dates le ou après 2006-1-2006 mais avant 2007-1-2007 | Trié par date d’élément, dans l’ordre croissant |
2007-1-1 | Éléments ayant des dates le ou après 2007-1-2007 mais avant 2008-1-2008 | Trié par valeur de type, dans l’ordre croissant |
2008-1-1 | Éléments ayant des dates le ou après 2008-1-2008 | Trié par date d’élément, dans l’ordre croissant |
NULL | Éléments sans valeur dans la colonne System.ItemDate | Trié par nom d’élément, dans l’ordre croissant |
Rubriques connexes
-
Informations de référence