ORDER IN GROUP yan tümcesi

ORDER IN GROUP yan tümcesi, gruplarda sonuç kümelerini döndüren GROUP ON deyimiyle birlikte kullanılır. ORDER IN GROUP yan tümcesi, döndürülen her grubu farklı bir şekilde sıralamanızı sağlar. Örneğin, System.Kind üzerinde gruplandırıyorsanız, tüm belgeleri System.Document.LastAuthor'a, tüm müzik dosyalarını System.Music.AlbumArtist'e ve tüm e-postaları System.Message.FromName'e göre sıralayabilirsiniz.

Sözdizimi

AŞAĞıDA ORDER IN GROUP yan tümcesinin söz dizimi yer alır:

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>]] ])

Grup adı tanımlayıcısı, GROUP ON deyiminde belirtildiği gibi grup sütunundaki bir aralık veya bilinen değerdir. Örneğin, System.Photo.ISOSpeed için bilinen değerler 'ISO-100', 'ISO-200' vb. içerebilir. System.Photo.DateTaken aralığı GROUP ON System.ItemDate ['2006-1-1', '2007-1-1'] gibi bir deyim için '2006-1-1' ve '2007-1-1' içerir.

Sütun tanımlayıcısı, GROUP ON veya SELECT deyiminde belirtilen geçerli bir sütun olmalıdır. Virgülle ayırarak birden fazla sütun ekleyebilirsiniz. Örneğin, System.Photo.ISOSpeed üzerinde gruplandırıyorsanız, tüm ISO-100 fotoğraflarını önce System.Photo.ShutterSpeed ve ardından System.Photo.Aperture ile sıralayabilirsiniz.

İsteğe bağlı yön belirtici artan (düşükten yükseğe) için ASC veya azalan (yüksekten düşüğe) için DESC olabilir. Yön tanımlayıcısı sağlamazsanız, varsayılan olarak artan kullanılır. Birden fazla sütun belirtirseniz ancak tüm yönleri belirtmezseniz, siz yönü açıkça değiştirene kadar son belirttiğiniz yön her ardışık sütuna uygulanır.

ORDER GROUP IN yan tümcesinde açıkça belirtilmeyen aralıklar veya değerler, GROUP ON sütunundaki değerlere göre artan düzende sıralanır.

Örnekler

Aşağıdaki örnek sonuçları System.Kind özelliğine göre gruplandırmaktadır. Sorgu, 'program' grubunu uygulama adına ve 'müzik' grubunu albüm başlığına ve parça numarasına göre sıralar. NULL grubu, öğe adına göre sıralanır. Diğer tüm gruplar, madde tarihine göre sıralanır.

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)

Aşağıdaki örnek sonuçları System.ItemDate özelliğine göre gruplandırıp her grubu öğe URL'sine, türüne veya adına göre sıralar.

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)

Yukarıdaki sorgunun sonuçları beş grupta döndürülür ve aşağıdaki tabloda açıklandığı gibi sıralanır.

Grup Açıklama Sıralama ölçütü
MINVALUE 2006-1-1 öncesi tarihleri olan öğeler Öğenin URL'sine göre artan düzende sıralanmış
2006-1-1 2006-1-1 tarihinde veya sonrasında ancak 2007-1-1 öncesinde tarihleri olan öğeler Öğe tarihine göre artan düzende sıralanmış
2007-1-1 2007-1-1 tarihinde veya sonrasında ancak 2008-1-1 öncesinde tarihleri olan öğeler Tür değerine göre artan düzende sıralanmış
2008-1-1 2008-1-1 tarihinde veya sonrasında tarihleri olan öğeler Öğe tarihine göre artan düzende sıralanmış
NULL System.ItemDate sütununda değeri olmayan öğeler Öğe adına göre artan düzende sıralanmış

 

Başvuru

GRUPLA ... ÜZERİNDE... Deyim

ORDER BY Yan Tümcesi