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.

Berbagi itu indah...Share on Facebook0Share on Google+0Tweet about this on TwitterShare on LinkedIn0Pin on Pinterest0Digg this

4 comments

  1. selamat malam bang..saya kebetulan baru belajar php dgn maysql with dreamwever…saya ingin membuat laporan kredit barang dari nasabah yang sebelumnya menggunakan exel…saya sudah baca banyak tutorial tapi bukannya ngerti malah jadi bingung karna bahasa php dan mysql yang membingungkan…saya memilih dreamwever karna mikirnya sisa klik klik saja tapi setelah coba kok sulit sekali (cerita pendek)
    saya ingin agar di web dapat menampilkan detail angsuran bulanan per pelanggan
    contoh:
    nama Jenis_barang Harga_Barang Angsuran_Ke Angsuran_kredit sisa_kredit tanggal
    wenru pc-allinone 6.000.000 1 500.000 5.500.000 10-01-2017
    2 250.000 5.250.000 01-02-2017
    3 700.000 4.550.000 07-03-2017

    1. Dreamweaver hanyalah tools, dan tools pasti punya keterbatasan. Jadi saran saya tetap harus belajar bahasa pemrograman php dan mysql -nya. Ya minimal menguasai dasarnya. Untuk menampilkan tampilan tersebut, perlu pemahaman mengenai query dan menampilkan data di halaman.

  2. Malam pak….sy udh muter2 mncri refernsi tntang sql server

    Sy ingin menampilkan data di database dengan urutan
    Kode nma jmlah stok sisa
    01 ac 100 5 95
    01 ac 95 5 90
    01 ac 90 50 40
    01 ac 40 40 0
    Pertnyaan sy logikanya sprti di atas gmna ya pak kolom sisa menjadi kolom jumlah dst smpai stok mencpai 100
    ..mohon bntuanya pak

Leave a Reply

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