ORDER BY di SQL

Mengurutkan hasil query berdasarkan satu atau beberapa kolom, naik (ASC) atau turun (DESC).

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];
BagianKeterangan
ASCUrut naik: A ke Z, kecil ke besar, tanggal lama ke baru. Ini bawaan kalau tidak ditulis.
DESCUrut turun: Z ke A, besar ke kecil, tanggal baru ke lama.
kolom2Pengurut 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

idnamadept_idkotagajitgl_masukatasan_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
query.sql
SELECT nama, kota, gaji
FROM karyawan
ORDER BY kota ASC, gaji DESC;
>_ Jalankan & ubah query ini di browser

Hasil 8 baris

namakotagaji
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

  1. FROM karyawan lalu SELECT nama, kota, gaji: 8 baris dengan 3 kolom disiapkan.
  2. ORDER BY kota ASC: baris dikelompokkan sesuai kota menurut abjad: Bandung, Jakarta, Medan, Surabaya.
  3. 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 DESC saat mencari nilai terbesar, sehingga yang muncul di atas justru yang terkecil.
Progres bab Dasar Query 0/7 dipelajari
Lanjut: LIMIT

Belajar SQL bareng mentor

Hafal sintaks itu mudah. Menjawab pertanyaan bisnis, itu skill.

Private Class Python & SQL untuk Data: dari query dasar sampai JOIN dan studi kasus kerja, dengan kurikulum dan jadwal yang menyesuaikan kamu.

Lihat Private Class