Ringkasan :dalam tutorial ini, Anda akan mempelajari cara mengurutkan kumpulan hasil kueri menggunakan SQLite ORDER BY klausa.
Pengantar SQLite ORDER BY klausa
SQLite menyimpan data dalam tabel dalam urutan yang tidak ditentukan. Ini berarti bahwa baris dalam tabel mungkin atau mungkin tidak dalam urutan yang dimasukkan.
Jika Anda menggunakan SELECT pernyataan untuk meminta data dari tabel, urutan baris dalam kumpulan hasil tidak ditentukan.
Untuk mengurutkan kumpulan hasil, tambahkan ORDER BY klausa ke SELECT pernyataan sebagai berikut:
SELECT
select_list
FROM
table
ORDER BY
column_1 ASC,
column_2 DESC;Code language: SQL (Structured Query Language) (sql)
ORDER BY klausa muncul setelah FROM ayat. Ini memungkinkan Anda untuk mengurutkan kumpulan hasil berdasarkan satu atau beberapa kolom dalam urutan menaik atau menurun.
Dalam sintaks ini, Anda menempatkan nama kolom yang ingin Anda urutkan setelah ORDER BY klausa diikuti oleh ASC atau DESC kata kunci.
ASCkata kunci berarti naik.- Dan
DESCkata kunci berarti turun.
Jika Anda tidak menentukan ASC atau DESC kata kunci, SQLite mengurutkan kumpulan hasil menggunakan ASC pilihan. Dengan kata lain, ini mengurutkan hasil yang diatur dalam urutan menaik secara default.
Jika Anda ingin mengurutkan hasil yang ditetapkan oleh beberapa kolom, Anda menggunakan koma (,) untuk memisahkan dua kolom. ORDER BY klausa mengurutkan baris menggunakan kolom atau ekspresi dari kiri ke kanan. Dengan kata lain, ORDER BY klausa mengurutkan baris menggunakan kolom pertama dalam daftar. Kemudian, ia mengurutkan baris yang diurutkan menggunakan kolom kedua, dan seterusnya.
Anda dapat mengurutkan kumpulan hasil menggunakan kolom yang tidak muncul dalam daftar pilih SELECT klausa.
SQLite ORDER BY contoh klausa
Mari kita ambil tracks tabel dalam database sampel untuk demonstrasi.
Misalkan, Anda ingin mendapatkan data dari kolom nama, milidetik, dan id album, Anda menggunakan pernyataan berikut:
SELECT
name,
milliseconds,
albumid
FROM
tracks;Code language: SQL (Structured Query Language) (sql) Cobalah
SELECT pernyataan yang tidak menggunakan ORDER BY klausa mengembalikan kumpulan hasil yang tidak dalam urutan apa pun.
Misalkan Anda ingin mengurutkan kumpulan hasil berdasarkan AlbumId kolom dalam urutan menaik, Anda menggunakan pernyataan berikut:
SELECT
name,
milliseconds,
albumid
FROM
tracks
ORDER BY
albumid ASC;Code language: SQL (Structured Query Language) (sql) Cobalah
Kumpulan hasil sekarang diurutkan berdasarkan AlbumId kolom dalam urutan menaik seperti yang ditunjukkan pada tangkapan layar.
SQLite menggunakan ASC secara default sehingga Anda dapat menghilangkannya dalam pernyataan di atas sebagai berikut:
SELECT
name,
milliseconds,
albumid
FROM
tracks
ORDER BY
albumid; Cobalah
Misalkan Anda ingin mengurutkan hasil yang diurutkan (berdasarkan AlbumId ) di atas dengan Milliseconds kolom dalam urutan menurun. Dalam hal ini, Anda perlu menambahkan Milliseconds kolom ke ORDER BY klausa sebagai berikut:
SELECT
name,
milliseconds,
albumid
FROM
tracks
ORDER BY
albumid ASC,
milliseconds DESC;Code language: SQL (Structured Query Language) (sql) Cobalah
SQLite mengurutkan baris berdasarkan AlbumId kolom dalam urutan menaik terlebih dahulu. Kemudian, itu mengurutkan hasil yang diurutkan yang ditetapkan oleh Milliseconds kolom dalam urutan menurun.
Jika Anda melihat trek album dengan AlbumId 1, Anda menemukan bahwa urutan trek berubah di antara dua pernyataan.
SQLite ORDER BY dengan posisi kolom
Alih-alih menentukan nama kolom, Anda dapat menggunakan posisi kolom di ORDER BY klausa.
Misalnya, pernyataan berikut mengurutkan trek berdasarkan albumid (kolom ke-3) dan milliseconds (kolom ke-2) dalam urutan menaik.
SELECT
name,
milliseconds,
albumid
FROM
tracks
ORDER BY
3,2;Code language: SQL (Structured Query Language) (sql) Cobalah
Angka 3 dan 2 mengacu pada AlbumId dan Milliseconds dalam daftar kolom yang muncul di SELECT klausa.
Mengurutkan NULL
Di dunia database, NULL itu spesial. Ini menunjukkan bahwa informasi yang hilang atau data tidak berlaku.
Misalkan Anda ingin menyimpan ulang tahun seorang artis dalam sebuah tabel. Pada saat menyimpan rekaman artis, Anda tidak memiliki informasi ulang tahun.
Untuk mewakili informasi ulang tahun yang tidak diketahui dalam database, Anda dapat menggunakan tanggal khusus seperti 01.01.1900 atau '' string kosong. Namun, kedua nilai ini tidak secara jelas menunjukkan bahwa tanggal lahir tidak diketahui.
NULL diciptakan untuk mengatasi masalah ini. Alih-alih menggunakan nilai khusus untuk menunjukkan bahwa informasi tersebut hilang, NULL digunakan.
NULL istimewa karena Anda tidak dapat membandingkannya dengan nilai lain. Sederhananya, jika kedua informasi tersebut tidak diketahui, Anda tidak dapat membandingkannya.
NULL bahkan tidak bisa dibandingkan dengan dirinya sendiri; NULL tidak sama dengan dirinya sendiri jadi NULL = NULL selalu menghasilkan false.
Saat menyortir, SQLite menganggap NULL lebih kecil dari nilai lainnya.
Artinya NULL akan muncul di awal kumpulan hasil jika Anda menggunakan ASC atau di akhir kumpulan hasil saat Anda menggunakan DESC.
SQLite 3.30.0 menambahkan NULLS FIRST dan NULLS LAST pilihan ke ORDER BY ayat. NULLS FIRST opsi menentukan bahwa NULL akan muncul di awal set hasil sementara NULLS LAST pilihan tempatkan NULL di akhir kumpulan hasil.
Contoh berikut menggunakan ORDER BY klausa untuk mengurutkan trek berdasarkan komposer:
SELECT
TrackId,
Name,
Composer
FROM
tracks
ORDER BY
Composer;Code language: SQL (Structured Query Language) (sql) Pertama, Anda melihat bahwa NULL muncul di awal kumpulan hasil karena SQLite memperlakukannya sebagai nilai terendah. Saat Anda menggulir ke bawah hasilnya, Anda akan melihat nilai lain:
Contoh berikut menggunakan NULLS LAST opsi untuk menempatkan NULL setelah nilai lain:
SELECT
TrackId,
Name,
Composer
FROM
tracks
ORDER BY
Composer NULLS LAST;Code language: SQL (Structured Query Language) (sql) Jika Anda menggulir ke bawah output, Anda akan melihat bahwa NULL ditempatkan di akhir kumpulan hasil:
Dalam tutorial ini, Anda telah belajar bagaimana menggunakan SQLite ORDER BY klausa untuk mengurutkan kumpulan hasil menggunakan satu kolom, beberapa kolom dalam urutan menaik dan menurun.