Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La clausola ORDER IN GROUP viene utilizzata insieme all'istruzione GROUP ON, che restituisce i set di risultati nei gruppi. La clausola ORDER IN GROUP consente di ordinare ogni gruppo restituito in modo diverso. Se si raggruppa in System.Kind, ad esempio, è possibile ordinare tutti i documenti in base a System.Document.LastAuthor, tutti i file musicali di System.Music.AlbumArtist e tutti i messaggi di posta elettronica di System.Message.FromName.
Sintassi
Di seguito è riportata la sintassi della clausola 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>]] ])
L'identificatore del nome del gruppo è un intervallo o un valore noto della colonna di gruppo, come specificato nell'istruzione GROUP ON. Ad esempio, i valori noti per System.Photo.ISOSpeed includono 'ISO-100', 'ISO-200' e così via. Un intervallo per System.Photo.DateTaken includerebbe '2006-1-1' e '2007-1-1' per un'istruzione come GROUP ON System.ItemDate ['2006-1-1', '2007-1-1'].
L'identificatore di colonna deve essere una colonna valida specificata nell'istruzione GROUP ON o SELECT. È possibile includere più colonne, separate da virgole. Ad esempio, se si raggruppa su System.Photo.ISOSpeed, è possibile ordinare tutte le foto ISO-100, prima per System.Photo.ShutterSpeed e quindi per System.Photo.Aperture.
L'identificatore di direzione facoltativo può essere asc per l'asc crescente (da basso a alto) o DESC per decrescente (da alto a basso). Se non si specifica un identificatore di direzione, viene utilizzata l'impostazione predefinita crescente. Se si specificano più colonne, ma non si specificano tutte le direzioni, la direzione specificata per ultima viene applicata a ogni colonna successiva fino a quando non si modifica in modo esplicito la direzione.
Gli intervalli o i valori non specificati in modo esplicito in una clausola ORDER GROUP IN vengono ordinati in ordine crescente in base ai valori nella colonna GROUP ON.
Esempi
L'esempio seguente raggruppa i risultati in base alla proprietà System.Kind. La query ordina il gruppo 'program' in base al nome dell'applicazione e al gruppo 'music' in base al titolo dell'album e al numero di traccia. Il gruppo di NULL viene ordinato in base al nome dell'elemento. Tutti gli altri gruppi sarebbero ordinati in base alla data dell'elemento.
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'esempio seguente raggruppa i risultati in base alla proprietà System.ItemDate e quindi ordina ogni gruppo in base all'URL dell'elemento, al tipo o al nome.
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)
I risultati della query precedente vengono restituiti in cinque gruppi e ordinati come descritto nella tabella seguente.
Gruppo | Descrizione | Filtrate |
---|---|---|
MINVALUE | Elementi con date precedenti al 2006-1-1 | Ordinato in base all'URL dell'elemento, in ordine crescente |
2006-1-1 | Elementi con date successive o successive al 2006-1-1 ma prima del 2007-1-1 | Ordinato in base alla data dell'elemento, in ordine crescente |
2007-1-1 | Elementi con date in data o dopo il 2007-1-1 ma prima del 2008-1-1 | Ordinamento in base al valore di tipo, in ordine crescente |
2008-1-1 | Elementi con date successive al 2008-1-1 | Ordinato in base alla data dell'elemento, in ordine crescente |
NULL | Elementi senza valore nella colonna System.ItemDate | Ordinato in base al nome dell'elemento, in ordine crescente |
Argomenti correlati
-
riferimento