Masalah:
Anda perlu menampilkan catatan dari tabel tertentu yang diurutkan berdasarkan dua kolom.
Contoh:
Basis data kami memiliki tabel bernama employee
dengan kolom berikut:id
, first_name
, last_name
, dan salary
.
id | nama_depan | nama_belakang | gaji |
---|---|---|---|
1 | Lisa | Ulman | 3000 |
2 | Ada | Muller | 2400 |
3 | Thomas | Hijau | 2400 |
4 | Michael | Muller | 3000 |
5 | Maria | Hijau | 2400 |
Mari kita tampilkan semua informasi untuk setiap karyawan tetapi urutkan catatan menurut gaji dalam urutan menurun terlebih dahulu dan kemudian berdasarkan nama belakang dalam urutan menaik.
Solusi:
SELECT id, first_name, last_name, salary FROM employee ORDER BY salary DESC, last_name;
Kueri ini mengembalikan catatan yang diurutkan menurut dua kolom:gaji dan nama_belakang .
id | nama_depan | nama_belakang | gaji |
---|---|---|---|
4 | Michael | L uller | 3000 |
1 | Lisa | U lman | 3000 |
3 | Thomas | G ulang | 2400 |
5 | Maria | G ulang | 2400 |
2 | Ada | L uller | 2400 |
Diskusi:
Jika Anda ingin memilih rekaman dari tabel tetapi ingin melihatnya diurutkan menurut dua kolom, Anda dapat melakukannya dengan ORDER BY
. Klausa ini ada di akhir kueri SQL Anda.
Setelah ORDER BY
kata kunci, tambahkan nama kolom tempat Anda ingin mengurutkan catatan terlebih dahulu (dalam contoh kami, gaji). Kemudian, setelah koma, tambahkan kolom kedua (dalam contoh kita, last_name
). Anda dapat mengubah urutan pengurutan (naik atau turun) secara terpisah untuk setiap kolom. Jika Anda ingin menggunakan urutan menaik (rendah ke tinggi), Anda dapat menggunakan ASC
kata kunci; kata kunci ini opsional, karena itu adalah urutan default ketika tidak ada yang ditentukan. Jika Anda ingin menggunakan urutan menurun, masukkan DESC
kata kunci setelah kolom yang sesuai (dalam contoh, kami menggunakan urutan menurun untuk salary
kolom).
Dalam contoh kami, pertama-tama kami mengurutkan hasil berdasarkan gaji dalam urutan menurun (gaji lebih tinggi ke yang lebih rendah) dan kemudian dengan nama belakang dalam urutan menaik dalam catatan yang sudah diurutkan.