SQL ORDER BY Keyword

Query SQL ORDER BY Keyword

SQL ORDER BY keyword adalah query dalam sql yang biasa digunakan untuk mengurutkan (sort) data pada kolom tertentu baik secara urutan naik maupun turun.

Adapun konsep untuk mempermudah pemahaman terkait dengan query SQL ORDER BY bisa menggunakan ilustrasi berikut.

Ambilkan saya data pada kolom berikut dari tabel ini, jangan lupa urutkan secara menurun/naik berdasarkan kolom ini.

Jika dituliskan dalam bentuk sintaks sql, maka query ORDER BY tampak seperti berikut.

Sintaks SQL ORDER BY

SELECT kolom1, kolom2, ...
FROM nama_tabel
ORDER BY kolom1, kolom2, ... ASC | DESC;

Berdasarkan sintaks di atas, dua baris pertama merupakan query sql select biasa. Adapun perintah sql order by dimulai pada baris ketiga dengan diawali kata kunci ORDER BY lalu diikuti pasangan nama kolom dan keterangan (ASC atau DESC) yang menjadi acuan untuk mengurutkannya.

Agar bisa memahami lebih lanjut, mari kita gunakan dalam kasus tabel students yang kurang lebih isi tabelnya seperti ini.

id name class
1 Dadan X IPA 1
2 Doni X IPA 2
3 Caca X IPA 3
4 Lala X IPA 1
5 Indra X IPA 2

SQL ORDER BY DESC

Mari kita ketahui lebih dalam tentang keterangan DESC yang berupa keyword daripada DESCENDING. Kata kunci DESC dalam query SQL ORDER BY digunakan untuk mengurutkan hasil secara menurun.

Secara numerik ataupun date keyword DESC berarti dari besar ke kecil, sedangkan dalam bentuk alfabet berarti urut dari Z ke A.

Dari tabel students di atas, terdapat tiga cara untuk mengurutkan hasil query sql dengan ORDER BY jika dipilih salah satu kolom sebagai acuannya.

Misalkan, contoh pertama kita pilih untuk mengurutkan secara menurun (DESC) dengan acuan kolom id, maka query sql nya seperti berikut.

SELECT * FROM students
ORDER BY id DESC;

Output:

id name class
5 Indra X IPA 2
4 Lala X IPA 1
3 Caca X IPA 3
2 Doni X IPA 2
1 Dadan X IPA 1

Misalkan contoh kedua, kita ingin mengurutkan DESC dengan acuan kolom class, maka query sql order by untuk kasus ini seperti berikut.

SELECT * FROM students
ORDER BY class DESC;

Output:

id name class
3 Caca X IPA 3
2 Doni X IPA 2
5 Indra X IPA 2
1 Dadan X IPA 1
4 Lala X IPA 1

SQL ORDER BY ASC

Berikutnya, mari kita ketahui tentang keterangan ASC yang berupa keyword daripada ASCENDING. Kata kunci ASC merupakan default untuk query SQL ORDER BY, di mana hasilnya berupa urutan secara naik atau kebalikan dari DESC.

Artinya, secara numerik ataupun date akan menghasilkan urutan dari kecil ke besar. Sedangkan secara alfabet berarti dari huruf A ke Z.

Telah disebutkan bahwa ASC merupakan default untuk keyword ORDER BY, jika kita tidak menuliskan secara eksplisit keyword ASC, maka sql akan secara default mengurutkan secara ASC.

Mari kita coba ke contoh pertama dari tabel students kita pilih acuan pada kolom name tanpa menuliskan keyword ASC.

SELECT * FROM students
ORDER BY name;

Output:

id name class
3 Caca X IPA 3
1 Dadan X IPA 1
2 Doni X IPA 2
5 Indra X IPA 2
4 Lala X IPA 1

Contoh kedua, misalkan kita akan mengurutkan secara ASC berdasarkan kolom class dengan menuliskan keyword ASC secara eksplisit.

SELECT * FROM students
ORDER BY class ASC;

Output:

id name class
1 Dadan X IPA 1
4 Lala X IPA 1
2 Doni X IPA 2
5 Indra X IPA 2
3 Caca X IPA 3

SQL ORDER BY ASC & DESC

Di contoh kasus sebelumnya kita hanya melakukan sorting dengan satu acuan kolom saja, bagaimana jika kamu ingin mengurutkan berdasarkan beberapa kolom?

Untuk mendemonstrasikan kasus ini, kita perlu menambahkan data baru ke tabel students agar bisa melihat perbedaannya. Dalam hal ini, tabel students menjadi seperti berikut.

id name class
1 Dadan X IPA 1
2 Doni X IPA 2
3 Caca X IPA 3
4 Lala X IPA 1
5 Indra X IPA 2
6 Dadan X IPA 3

Misalkan kita hendak melakukan sorting secara ASC pada tabel tersebut berdasarkan kolom name dan class.

SELECT * FROM students
ORDER BY name, class;

Output:

id name class
3 Caca X IPA 3
1 Dadan X IPA 1
6 Dadan X IPA 3
2 Doni X IPA 2
5 Indra X IPA 2
4 Lala X IPA 1

Berikutnya, misalkan kita ingin mengurutkan secara ASC untuk kolom name, tapi DESC untuk kolom class.

SELECT * FROM students
ORDER BY name ASC, class DESC;

Output:

id name class
3 Caca X IPA 3
6 Dadan X IPA 3
1 Dadan X IPA 1
2 Doni X IPA 2
5 Indra X IPA 2
4 Lala X IPA 1

Dalam proses sorting menggunakan SQL ORDER BY dengan kasus acuan beberapa kolom untuk mengurutkan terdapat urutan prioritas. Di mana nama kolom yang disebutkan pertama dalam keyword ORDER BY akan menjadi prioritas pertama, dst.

Misalkan kita ingin melakukan sorting seperti pada contoh sebelumnya yaitu kolom name ASC dan kolom class DESC tapi dengan prioritas sorting kolom class.

SELECT * FROM students
ORDER BY class DESC, name ASC;

Output:

id name class
3 Caca X IPA 3
6 Dadan X IPA 3
2 Doni X IPA 2
5 Indra X IPA 2
1 Dadan X IPA 1
4 Lala X IPA 1
Tomi Nurhidayat

Data Science dan Machine Learning Enthusiast | SEO Enthusiast.

Previous Post Next Post