SQL Server : Mengurutkan Data Hasil Query dengan ORDER BY

Sekarang mari kita belajar mengenal ORDER BY clause pada sebuah query data. ORDER BY digunakan jika kita ingin mengurutkan data yang ingin kita tampilkan. 

Sebagai gambaran sintaks yang digunakan adalah sebagai berikut:

SELECT
  list_select
FROM
  nama_table
ORDER BY 
  nama_field [ASC | DESC ]


ORDER BY diletakan di akhir query setelah FROM clause dan WHERE Clause (jika ada).

Kita dapat mengurutkan data berdasarkan nilai sebuah kolom atau lebih dengan menambahkan nama kolom setelah ORDER BY.

Dalam mengurutkan data kita dapat menggunakan 2 tipe:

  • ASC yaitu ascending yang berarti mengurutkan dari A ke Z atau dari nilai terkecil ke terbesar untuk nilai angka.
  • DESC yaitu descending yang berarti mengurutkan dari Z ke A atau dari nilai terbesar ke terkecil untuk nilai angka.

Bagaimana mengurutkan data berdasarkan sebuah kolom berurutan secara Ascending?

Secara default jika kita menambahkan ORDER BY + nama_kolom pada sebuah query maka urutan dilakukan secara ascending tanpa perlu menambahkan ASC. Tapi bukan berarti kita tidak bisa menambahkan ASC.

Untuk lebih memahami kita akan mencoba 3 buah query pada table customers:

Query 1 : Tanpa ORDER BY

SELECT customercode, customername
FROM [dbo].[customers] 

Query 2. ORDER BY kolom customercode

SELECT customercode, customername
FROM [dbo].[customers] 
ORDER BY customercode

Query 3: ORDER BY kolom customername

SELECT customercode, customername
FROM [dbo].[customers] 
ORDER BY customername

Hasilnya akan tampak sebagai berikut:



Bagaimana mengurutkan data berdasarkan sebuah kolom berurutan secara Descending?

Selanjutnya kita akan mencoba mengurutkan sebaliknya, dari Z-A atau dari nilai angka besar ke kecil. Dengan contoh 2 buah query pada table customers:

Query 1: ORDER BY kolom customercode

SELECT customercode, customername
FROM [dbo].[customers] 
ORDER BY customercode DESC

Query 2: ORDER BY kolom customername

SELECT customercode, customername
FROM [dbo].[customers] 
ORDER BY customername DESC

Hasilnya akan tampak sebagai berikut:


Bagaimana mengurutkan data berdasarkan sebuah 2 kolom atau lebih?

Mungkinkan mengurutkan berdasarkan lebih dari 1 kolom? Jawabannya tentu saja bisa, kita tinggal menambahkan koma diantara urutan kolom order. Untuk lebih jelasnya mari kita lihat pada query berikut ini:

Query 1 : Tanpa ORDER BY

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers]  

Query 2. ORDER BY kolom custlevelcode kemudian custlevelname

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers] 
ORDER BY custlevelcode, customername

Hasilnya:


Lalu bagaimana mengurutkan 2 kolom atau lebih (multi kolom) yang berbeda tipe urutan [ASC | DESC]?

Jawabanya tentu saja dengan menambahkan ASC atau DESC di masing-masing. Sebagaimana contoh berikut:

Query 1 : ORDER BY kolom custlevelcode ASC kemudian custlevelname DESC

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers] 
ORDER BY custlevelcode ASC, customername DESC  

Query 2. ORDER BY kolom custlevelcode DESC kemudian custlevelname ASC

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers] 
ORDER BY custlevelcode DESC, customername ASC

Hasilnya:



Mengurutkan Data dengan Menggunakan Expression Tertentu

Selain mengurutkan berdasarkan nama field, ORDER BY juga dapat mengurutkan berdasarkan ekspresi atau formula. Seperti contoh di bawah ini kita akan mengurutkan berdasarkan panjang karakter customername yaitu menggunakan LEN.

Query:

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers] 
ORDER BY LEN(customername)


Mengurutkan Data Mengurutkan Berdasarkan Nomor Urut Field/Kolom.

Yang dimaksud nomor urut field/kolom adalah urutan field di SELECT Clause, seperti contoh di bawah custlevelcode di urutan pertama dan customername di urutan ketiga. 

SELECT custlevelcode, customercode, customername
FROM [dbo].[customers] 
ORDER BY 1, 3

Hasilnya:



Post a Comment

0 Comments