Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die ORDER IN GROUP-Klausel wird in Verbindung mit der GROUP ON-Anweisung verwendet, die Resultsets in Gruppen zurückgibt. Mit der ORDER IN GROUP-Klausel können Sie jede zurückgegebene Gruppe auf eine andere Weise sortieren. Wenn Sie z. B. nach System.Kind gruppieren, können Sie dann alle Dokumente nach System.Document.LastAuthor, alle Musikdateien nach System.Music.AlbumArtist und alle E-Mails nach System.Message.FromName sortieren.
Syntax
Es folgt die Syntax der ORDER IN GROUP-Klausel:
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>]] ])
Der Gruppennamenbezeichner ist ein Bereich oder ein bekannter Wert aus der Gruppenspalte, wie in der GROUP ON-Anweisung angegeben. Bekannte Werte für System.Photo.ISOSpeed würden z. B. "ISO-100", "ISO-200" usw. enthalten. Ein Bereich für System.Photo.DateTaken würde "2006-1-1" und "2007-1-1" für eine Anweisung wie GROUP ON System.ItemDate ['2006-1-1', '2007-1-1'] enthalten.
Der Spaltenbezeichner muss eine gültige Spalte sein, die entweder in der GROUP ON- oder select-Anweisung angegeben ist. Sie können mehrere Spalten einschließen, getrennt durch Kommas. Wenn Sie beispielsweise nach System.Photo.ISOSpeed gruppieren, können Sie alle ISO-100-Fotos zuerst nach System.Photo.ShutterSpeed und dann nach System.Photo.Blend sortieren.
Der optionale Richtungsbezeichner kann entweder ASC für aufsteigend (niedrig bis hoch) oder DESC für absteigend (hoch bis niedrig) sein. Wenn Sie keinen Richtungsbezeichner angeben, wird der Standard, aufsteigend, verwendet. Wenn Sie mehrere Spalten angeben, aber nicht alle Richtungen angeben, wird die von Ihnen angegebene Richtung auf jede aufeinander folgende Spalte angewendet, bis Sie die Richtung explizit ändern.
Bereiche oder Werte, die nicht explizit in einer ORDER GROUP IN-Klausel angegeben sind, werden in aufsteigender Reihenfolge nach den Werten in der SPALTE GROUP ON sortiert.
Beispiele
Im folgenden Beispiel werden ergebnisse nach der System.Kind-Eigenschaft gruppiert. Die Abfrage würde die Gruppe "Programm" nach dem Anwendungsnamen und der Gruppe "Musik" nach Albumtitel und Titelnummer sortieren. Die NULL- Gruppe würde nach dem Elementnamen sortiert werden. Alle anderen Gruppen würden nach dem Elementdatum sortiert.
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)
Im folgenden Beispiel werden die Ergebnisse nach der System.ItemDate-Eigenschaft gruppiert und dann nach Element-URL, Typ oder Name sortiert.
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)
Die Ergebnisse der vorherigen Abfrage würden in fünf Gruppen zurückgegeben und wie in der folgenden Tabelle beschrieben sortiert.
Gruppe | Beschreibung | Sortiert nach |
---|---|---|
MINWERT | Elemente mit Datumsangaben vor 2006-1-1 | Sortiert nach der URL des Elements in aufsteigender Reihenfolge |
2006-1-1 | Elemente mit Datumsangaben am oder nach 2006-1-1, aber vor 2007-1-1 | Sortiert nach Elementdatum in aufsteigender Reihenfolge |
2007-1-1 | Elemente mit Datumsangaben am oder nach 2007-1-1, aber vor 2008-1-1 | Sortiert nach Typwert in aufsteigender Reihenfolge |
2008-1-1 | Elemente mit Datumsangaben am oder nach 2008-1-1 | Sortiert nach Elementdatum in aufsteigender Reihenfolge |
NULL- | Elemente ohne Wert in der Spalte "System.ItemDate" | Sortiert nach Elementname in aufsteigender Reihenfolge |
Verwandte Themen