Bagikan melalui


ORDER BY (Entity SQL)

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

Sintaksis

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

Argumen

order_by_expression Ekspresi kueri yang valid yang menentukan properti yang akan diurutkan. Beberapa ekspresi pengurutan dapat ditentukan. Urutan ekspresi pengurutan dalam klausul ORDER BY menentukan organisasi kumpulan hasil yang diurutkan.

COLLATE {collation_name} Menentukan bahwa operasi ORDER BY harus dilakukan sesuai dengan kolase 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 turun, dari nilai tertinggi ke nilai terendah.

BATASI n Hanya item pertama n yang akan dipilih.

SKIP n Lewati item pertama n .

Komentar

Klausa ORDER BY diterapkan secara logis ke 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 mereferensikan alias dari klausa SELECT.

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

Setiap ekspresi dalam klausul ORDER BY harus mengevaluasi ke beberapa jenis yang dapat dibandingkan untuk ketidaksamaan yang diurutkan (kurang dari atau lebih besar dari, dan sebagainya). Jenis-jenis ini umumnya adalah primitif skalar seperti angka, string, dan tanggal. RowTypes dari jenis yang sebanding juga dapat diurutkan sebanding.

Jika kode Anda berulang melalui set yang diurutkan, selain untuk proyeksi tingkat atas, output tidak dijamin memiliki pesanan yang dipertahankan.

Dalam sampel berikut, urutan dijamin akan dipertahankan:

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

Dalam kueri berikut, pengurutan kueri berlapis 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 diurutkan, gunakan pola berikut:

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

Kata kunci terbatas

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

  • SALIB

  • PENUH

  • KUNCI

  • KIRI

  • PERINTAH

  • LUAR

  • benar

  • BARIS

  • NILAI

Mengurutkan Kueri Berlapis

Dalam Kerangka Kerja Entitas, ekspresi berlapis dapat ditempatkan di mana saja dalam kueri; urutan kueri berlapis 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 berlapis 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 SQL Entitas 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 mengkompilasi dan menjalankan kueri ini, ikuti langkah-langkah berikut:

  1. Ikuti prosedur dalam Cara: Menjalankan Kueri yang Mengembalikan Hasil StructuralType.

  2. Teruskan kueri berikut sebagai argumen ke ExecuteStructuralTypeQuery metode :

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

Lihat juga