Penjelasan sederhana
ORDER BY mengurutkan hasil query, persis seperti fitur Sort di Excel. ASC artinya urut naik (A ke Z, kecil ke besar), DESC artinya urut turun (Z ke A, besar ke kecil). Kalau tidak ditulis, database memakai ASC.
Kamu bisa mengurutkan berdasarkan beberapa kolom sekaligus. Kolom kedua baru dipakai sebagai penentu kalau nilai di kolom pertama sama, seperti sort bertingkat di Excel.
Sintaks
SELECT kolom
FROM nama_tabel
ORDER BY kolom1 [ASC|DESC], kolom2 [ASC|DESC];
| Bagian | Keterangan |
|---|---|
ASC | Urut naik: A ke Z, kecil ke besar, tanggal lama ke baru. Ini bawaan kalau tidak ditulis. |
DESC | Urut turun: Z ke A, besar ke kecil, tanggal baru ke lama. |
kolom2 | Pengurut kedua, dipakai kalau nilai kolom1 sama. |
Tanda [kurung siku] berarti bagian opsional. Kata kunci SQL tidak membedakan huruf besar-kecil, tapi menulisnya dengan huruf besar membuat query lebih mudah dibaca.
Contoh ORDER BY
Data contoh: karyawan
Tabel karyawan
| id | nama | dept_id | kota | gaji | tgl_masuk | atasan_id |
|---|---|---|---|---|---|---|
| 1 | Andi Pratama | 3 | Bandung | 12500000 | 2019-03-11 | NULL |
| 2 | Bunga Lestari | 1 | Jakarta | 9800000 | 2020-07-01 | NULL |
| 3 | Candra Wijaya | 3 | Bandung | 8200000 | 2021-02-15 | 1 |
| 4 | Dewi Anggraini | 2 | Jakarta | 7500000 | 2022-05-09 | 6 |
| 5 | Eko Saputra | 1 | Jakarta | 6900000 | 2023-01-16 | 2 |
| 6 | Fajar Nugroho | 2 | Surabaya | 11000000 | 2018-09-03 | NULL |
| 7 | Gita Permata | 3 | Jakarta | 8200000 | 2023-08-21 | 1 |
| 8 | Hendra Gunawan | NULL | Medan | 5500000 | 2024-04-02 | NULL |
SELECT nama, kota, gaji
FROM karyawan
ORDER BY kota ASC, gaji DESC;
Hasil 8 baris
| nama | kota | gaji |
|---|---|---|
| Andi Pratama | Bandung | 12500000 |
| Candra Wijaya | Bandung | 8200000 |
| Bunga Lestari | Jakarta | 9800000 |
| Gita Permata | Jakarta | 8200000 |
| Dewi Anggraini | Jakarta | 7500000 |
| Eko Saputra | Jakarta | 6900000 |
| Hendra Gunawan | Medan | 5500000 |
| Fajar Nugroho | Surabaya | 11000000 |
Data diurutkan per kota (A ke Z). Di dalam kota yang sama, gaji terbesar ada di atas.
Cara kerjanya, langkah demi langkah
FROM karyawanlaluSELECT nama, kota, gaji: 8 baris dengan 3 kolom disiapkan.ORDER BY kota ASC: baris dikelompokkan sesuai kota menurut abjad: Bandung, Jakarta, Medan, Surabaya.gaji DESC: di dalam kota yang sama, gaji terbesar ditaruh paling atas. Di Bandung, Andi (12,5 juta) di atas Candra (8,2 juta). Di Jakarta urutannya Bunga, Gita, Dewi, Eko.
Dipakai untuk apa di kantor?
- Menampilkan produk terlaris di urutan teratas.
- Mengurutkan transaksi dari yang terbaru supaya mudah dicek.
- Menyusun daftar karyawan per departemen lalu per nama.
Kesalahan yang sering terjadi
- Mengira data di database sudah urut dengan sendirinya. Tanpa
ORDER BY, urutan hasil tidak dijamin dan bisa berubah kapan saja. - Lupa menulis
DESCsaat mencari nilai terbesar, sehingga yang muncul di atas justru yang terkecil.
LIMIT