Masalah:
Anda ingin mengurutkan hasil kueri SQL dalam urutan menaik atau menurun.
Contoh:
Basis data kami memiliki tabel bernama salary_information
dengan data pada kolom id
, first_name
, last_name
, dan monthly_earnings
. Kami ingin mengurutkan karyawan berdasarkan monthly_earnings
dalam urutan menurun.
id | nama_depan | nama_belakang | penghasilan_bulanan |
---|---|---|---|
1 | Calvin | Rios | 3500 |
2 | Alan | Paterson | 4000 |
3 | Kurt | Evans | 2300 |
4 | Alex | Watkins | 5500 |
Solusi:
Kami akan menggunakan ORDER BY
ayat. Ini pertanyaannya:
Kami akan menggunakan fungsi CURRENT_DATE
untuk mendapatkan tanggal saat ini:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY monthly_earnings DESC
Berikut hasil querynya:
nama_depan | nama_belakang | penghasilan_bulanan |
---|---|---|
Alex | Watkins | 5500 |
Alan | Paterson | 4000 |
Calvin | Rios | 3500 |
Kurt | Evans | 2300 |
Sekarang, kita dapat melihat bahwa Alex Watkins berada di urutan pertama, yang berarti dia menghasilkan uang paling banyak.
Diskusi:
Gunakan ORDER BY
klausa jika Anda ingin mengurutkan dataset dalam urutan menaik atau menurun. Sintaks untuk ORDER BY
klausanya sebagai berikut:
SELECT col1, col2, … FROM table ORDER BY col1, col2, … ASC|DESC;
Di atas, ASC|DESC
berarti Anda harus memilih kata kunci ASC
(naik) atau DESC
(turun) untuk mengurutkan kumpulan data sesuai keinginan Anda.
Selain mengurutkan berdasarkan kolom numerik, Anda juga dapat mengurutkan berdasarkan kolom teks. Sebuah ORDER BY
klausa akan mengurutkan kolom teks dalam urutan abjad.
Alih-alih nama kolom, Anda juga dapat menggunakan posisi penghitungan kolom dari kiri. Jadi, dalam contoh kita, alih-alih menulis:
ORDER BY monthly_earnings DESC
Anda juga dapat menulis:
ORDER BY 3 DESC
Jika Anda ingin mengurutkan tabel dari contoh dengan first_name
kolom dalam urutan abjad (naik), Anda dapat menggunakan kueri berikut:
SELECT first_name, last_name, monthly_earnings FROM salary_information ORDER BY first_name ASC
Perlu juga dicatat bahwa Anda dapat mengurutkan berdasarkan beberapa kolom. Ini berguna ketika beberapa nilai dalam kolom tertentu diulang dan Anda memerlukan pengurutan tambahan. Dalam hal ini, pisahkan nama kolom dengan koma dalam klausa ORDER BY.
Anda bahkan dapat mengurutkan dalam urutan menaik menurut satu kolom dan dalam urutan menurun menurut yang lain. Berikut ini mengilustrasikan sintaks dari kombinasi ini:
ORDER BY Col1 ASC, Col2 DESC;
Jika Anda menghilangkan ASC
atau DESC
kata kunci, pengurutan menaik dilakukan secara default.