Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Az ORDER IN GROUP záradék a GROUP ON utasítással együtt használatos, amely eredményhalmazokat ad vissza csoportokban. Az ORDER IN GROUP záradék lehetővé teszi, hogy az egyes visszaadott csoportokat más módon rendezze. Ha például a System.Kind csoportba rendezi az összes dokumentumot a System.Document.LastAuthor, a System.Music.AlbumArtist összes zenefájlja és a System.Message.FromName összes e-mailje szerint.
Szintaxis
Az ORDER IN GROUP záradék szintaxisa a következő:
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>]] ])
A csoportnév-kijelölő a csoport oszlopából származó tartomány vagy ismert érték, a GROUP ON utasításban megadottak szerint. A System.Photo.ISOSpeed ismert értékei közé tartoznak például az "ISO-100", az "ISO-200" és így tovább. A System.Photo.DateTaken tartománya a "2006-1-1" és a "2007-1-1" utasítást tartalmazza egy olyan utasításhoz, mint a GROUP ON System.ItemDate [2006-1-1', "2007-1-1".
Az oszlopkijelölőnek a GROUP ON vagy a SELECT utasításban megadott érvényes oszlopnak kell lennie. Több oszlopot is tartalmazhat vesszővel elválasztva. Ha például a System.Photo.ISOSpeed csoportba rendezi az összes ISO-100-fényképet, először a System.Photo.ShutterSpeed, majd a System.Photo.Aperture szerint.
Az opcionális irányjelölő lehet ASC növekvő (alacsonytól magasig) vagy DESC csökkenő (magastól alacsonyig). Ha nem ad meg irányjelölőt, a rendszer az alapértelmezett, növekvő értéket használja. Ha egynél több oszlopot ad meg, de nem adja meg az összes irányt, a rendszer az utolsóként megadott irányt alkalmazza az egyes egymást követő oszlopokra, amíg explicit módon nem módosítja az irányt.
Az ORDER GROUP IN záradékban explicit módon nem megadott tartományok vagy értékek növekvő sorrendben vannak rendezve a GROUP ON oszlop értékei szerint.
Példák
Az alábbi példa a System.Kind tulajdonság eredményeit csoportosítja. A lekérdezés a "program" csoportot az alkalmazás neve és a "zene" csoport szerint rendezné albumcím és szám szerint. A NULL csoportot az elem neve rendezi. Az összes többi csoport a cikk dátuma szerint lenne rendezve.
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)
Az alábbi példa a System.ItemDate tulajdonság alapján jeleníti meg a találatokat, majd az egyes csoportokat elem URL-címe, típusa vagy neve szerint rendezi.
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)
Az előző lekérdezés eredményei öt csoportban lesznek visszaadva, és az alábbi táblázatban leírtak szerint lesznek rendezve.
| Csoport | Leírás | Rendezés |
|---|---|---|
| MINVALUE | 2006-1-1 előtti dátummal rendelkező elemek | Az elem URL-címe szerint rendezve növekvő sorrendben |
| 2006-1-1 | 2006-1-1, de 2007-1-1 előtti dátummal rendelkező elemek | Rendezés tételdátum szerint növekvő sorrendben |
| 2007-1-1 | 2007-1-1 dátummal rendelkező elemek, de 2008-1-1 előtt | Rendezés típus szerint, növekvő sorrendben |
| 2008-1-1 | 2008-1-1 dátummal rendelkező elemek | Rendezés tételdátum szerint növekvő sorrendben |
| NULL | A System.ItemDate oszlopban érték nélküli elemek | Elemnév szerint rendezve növekvő sorrendben |
Kapcsolódó témakörök