ORDER BY (Entity SQL)

Menentukan urutan pengurutan yang digunakan pada objek yang dikembalikan dalam pernyataan SELECT.

Sintaks

[ ORDER BY
   {
      order_by_expression [SKIP n] [LIMIT n]
      [ COLLATE collation_name ]
      [ ASC | DESC ]
   }
   [ ,…n ]
]

Argumen

order_by_expression Ekspresi kueri apa pun yang valid yang menentukan properti yang akan diurutkan. Beberapa ekspresi pengurutan dapat ditentukan. Urutan ekspresi sortir dalam klausa ORDER BY mendefinisikan organisasi kumpulan hasil yang diurutkan.

COLLATE {collation_name} Menentukan bahwa operasi ORDER BY harus dilakukan sesuai dengan susunan yang ditentukan dalam collation_name. COLLATE hanya berlaku untuk ekspresi string.

ASC Menentukan bahwa nilai dalam properti yang ditentukan harus diurutkan dalam urutan naik, dari nilai terendah ke nilai tertinggi. Ini adalah default.

DESC Menentukan bahwa nilai dalam properti yang ditentukan harus diurutkan dalam urutan menurun, dari nilai tertinggi ke nilai terendah.

LIMIT n Hanya n item pertama yang akan dipilih.

SKIP n Melewati n item pertama.

Keterangan

Klausa ORDER BY secara logis diterapkan pada hasil klausa SELECT. Klausa ORDER BY dapat mereferensikan item dalam daftar pilih dengan menggunakan aliasnya. Klausa ORDER BY juga dapat mereferensikan variabel lain yang saat ini berada dalam cakupan. Namun, jika klausa SELECT telah ditentukan dengan pengubah DISTINCT, klausa ORDER BY hanya dapat merujuk alias dari klausa SELECT.

SELECT c AS c1 FROM cs AS c ORDER BY c1.e1, c.e2

Setiap ekspresi dalam klausa ORDER BY harus dievaluasi ke beberapa jenis yang dapat dibandingkan untuk ketidaksetaraan yang diurutkan (kurang dari atau lebih dari, dan seterusnya). Jenis-jenis ini umumnya adalah primitif skalar seperti angka, string, dan tanggal. RowTypes dari jenis yang sebanding juga dapat dibandingkan pesanan.

Jika kode Anda berulang pada kumpulan yang dipesan, selain untuk proyeksi tingkat atas, output tidak dijamin urutannya dipertahankan.

Dalam contoh berikut, pesanan dijamin akan dipertahankan:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

Dalam kueri berikut, pengurutan kueri bersarang diabaikan:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

Untuk memiliki operasi UNION, UNION ALL, EXCEPT, atau INTERSECT yang terurut, gunakan pola berikut:

SELECT ...
FROM ( UNION/EXCEPT/INTERSECT operation )
ORDER BY ...

Kata kunci terbatas

Kata kunci berikut harus diapit tanda kutip saat digunakan dalam klausa ORDER BY:

  • CROSS

  • FULL

  • KEY

  • LEFT

  • ORDER

  • OUTER

  • RIGHT

  • BARIS

  • VALUE

Memesan Kueri Bersarang

Dalam Kerangka Entitas, ekspresi bersarang dapat ditempatkan di mana saja dalam kueri; urutan kueri bersarang tidak dipertahankan.

Kueri berikut akan mengurutkan hasil dengan nama belakang:

SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName

Dalam kueri berikut, pengurutan kueri bersarang diabaikan:

SELECT C2.FirstName, C2.LastName
    FROM (SELECT C1.FirstName, C1.LastName
        FROM AdventureWorks.Contact as C1
        ORDER BY C1.LastName) as C2

Contoh

Kueri Entity SQL berikut menggunakan operator ORDER BY untuk menentukan urutan pengurutan yang digunakan pada objek yang dikembalikan dalam pernyataan SELECT. Kueri didasarkan pada Model Penjualan AdventureWorks. Untuk mengompilasi dan menjalankan kueri ini, ikuti langkah-langkah berikut:

  1. Ikuti prosedur di Cara: Menjalankan Kueri yang Menampilkan Hasil StructuralType.

  2. Teruskan kueri berikut sebagai argumen ke metode ExecuteStructuralTypeQuery :

SELECT VALUE p FROM AdventureWorksEntities.Products 
    AS p ORDER BY p.ListPrice

Lihat juga