Pengurutan Data yang Mengandung NULL di MySQL

Pengurutan Data yang Mengandung NULL di MySQL

Tidak bisa dipungkiri, pengurutan data merupakan hal yang sangat penting, terutama untuk menyajikan data dalam bentuk tabel. Untuk melakukan pengurutan data yang tersimpan dalam basis data MySQL, dapat menggunakan perintah ORDER BY diikuti dengan satu atau beberapa kolom pengurutan. Berdasarkan urutannya, pengurutan terdiri dari 2 yaitu pengurutan secara Ascending (menaik dari kecil ke besar atau A-Z), dan Descending (menurun dari besar ke kecil atau Z-A). Lalu bagaimana kalo isi datanya ada yang mengandung NULL ? Jika diurutkan secara ascending atau descending apakah ditampilkan di atas atau bawah? Kita akan membahasnya di artikel ini.

Untuk mempermudah pembahasan, kita akan gunakan tabel sederhana sebagai berikut sebagai contoh data / kasus. Terlihat bahwa di Tabel 1 terdapat sejumlah barang dengan harganya masing-masing. Terdapat 2 record yang harganya bernilai NULL.

Tabel 1. Contoh data harga barang

Selanjutnya jika kita ingin mengurutkan data barang berdasarkan harga maka akan tampak seperti pada Tabel 2 berikut ini. Kita tinggal menambahkan perintah “ORDER BY harga” untuk mengurutkan berdasarkan harga barang. Perhatikan bahwa data barang yang harga bernilai NULL ditampilkan di awal (di atas).

Tabel 2. Pengurutan data berdasarkan kolom harga secara ascending

Dan jika diinginkan untuk mengurutkan data berdasarkan harga namun dari nilai terbesar ke terkecil (descending) cukup dengan menambahkan perintah DESC setelah perintah “ORDER BY harga”. Perhatikan query dan hasilnya pada Tabel 3 berikut ini.

Tabel 3. Pengurutan data berdasarkan harga secara descending

Dapat disimpulkan bahwa untuk data yang bernilai NULL ditampilkan di awal baris untuk pengurutan ascending, dan ditampilkan di baris akhir untuk pengurutan secara descending. Lalu bagaimana jika kita ingin melakukan pengurutan (sorting) dari harga yang terkecil (ascending), namun untuk data yang bernilai NULL ditampilkan di baris terakhir? Trik-nya kita bisa menggunakan fungsi ISNULL() untuk memeriksa suatu record bernilai NULL atau tidak.

Tabel 4 berikut ini ditampilkan nilai ISNULL() untuk setiap kolom harga. Jika kolom harga bernilai NULL maka fungsi ISNULL() akan menghasilkan nilai 1, dan sebaliknya akan menghasilkan nilai 0.

Tabel 4. Hasil fungsi ISNULL() dari kolom harga

Kita dapat memanfaatkan fungsi ISNULL() untuk melakukan pengurutan sedemikian hingga barang yang harganya bernilai NULL ditampilkan di akhir tabel. Query dan hasilnya ditampilkan pada Tabel 5 berikut ini.

Tabel 5. Query hasil pengurutan berdasarkan harga dan fungsi ISNULL()

Demikian sedikit pembahasan mengenai pengurutan tabel MySQL yang berkaitan dengan nilai NULL. Semoga bermanfaat.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *