SQLite
 sql >> Teknologi Basis Data >  >> RDS >> SQLite

Bagaimana SQLite Nullif() Bekerja

SQLite nullif() function adalah fungsi praktis yang memungkinkan Anda memperlakukan nilai tertentu sebagai NULL saat diperlukan.

Jangan bingung dengan ifnull() fungsi, yang melakukan sebaliknya – memungkinkan Anda untuk memperlakukan nilai NULL sebagai sesuatu yang lain.

nullif() function menerima dua argumen, dan mengembalikan argumen pertamanya jika argumennya berbeda dan NULL jika argumennya sama.

Sintaks

Sintaksnya seperti ini:

nullif(X,Y)

Fungsi mencari argumennya dari kiri ke kanan untuk argumen yang mendefinisikan fungsi penyusunan dan menggunakan fungsi penyusunan itu untuk semua perbandingan string. Jika tidak ada argumen yang mendefinisikan fungsi penyusunan, maka BINARY akan digunakan.

Contoh

Berikut adalah contoh dasar untuk didemonstrasikan.

SELECT 
  nullif(123,0),
  nullif(0,0),
  nullif(123,123);

Hasil:

nullif(123,0)  nullif(0,0)  nullif(123,123)
-------------  -----------  ---------------
123                                        

Pada kolom pertama kedua nilai tersebut berbeda, sehingga nilai pertama dikembalikan.

Di kolom kedua kedua nilainya sama, jadi NULL dikembalikan.

Hal yang sama berlaku untuk kolom ketiga – kedua nilainya sama, jadi NULL dikembalikan.

Contoh Praktis

Berikut adalah contoh database yang menunjukkan penggunaan yang lebih praktis untuk nullif() fungsi.

Ambil tabel berikut yang disebut Produk :

ProductId   ProductName    Price     
----------  -------------  ----------
1           Widget Holder  139.5     
2           Widget Stick   89.75     
3           Foo Cap        11.99     
4           Free Widget    0.0       
5           Free Foobar    0.0       
6           Free Beer                

Kita dapat melihat bahwa dua produk memiliki harga nol. Produk lain memiliki harga NULL.

Sekarang, bayangkan kita ingin mengetahui berapa banyak produk yang memiliki harga positif. Dengan kata lain, kami tidak ingin menyertakan produk yang memiliki harga atau nol (atau NULL dalam hal ini).

Untuk melakukan ini, kita dapat menggunakan nullif() dalam hubungannya dengan count() fungsi.

SELECT count(nullif(Price, 0.00)) 
FROM Products;

Hasil:

3

Kami mendapatkan 3 seperti yang diharapkan, yaitu berapa banyak baris yang memiliki nilai positif di Harga kolom.

Ini berfungsi karena count() fungsi hanya menghitung nilai non-NULL. Dengan mengonversi jumlah nol menjadi NULL, kami dapat mengabaikan nilai tersebut dalam perhitungan kami.

Ini dia lagi tanpa nullif() fungsi.

SELECT count(Price) 
FROM Products;

Hasil:

5

Jadi dalam hal ini, ini termasuk jumlah nol dan kami mendapatkan 5. Itu masih mengabaikan baris 6 karena itu sebenarnya memiliki nilai NULL.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Sintaks kueri SQLite yang disempurnakan di Android

  2. Cara memperbarui tabel dengan activeandroid setelah menambahkan kolom baru

  3. Kesalahan SQLiteConstraintException muncul setelah memulai setiap aktivitas

  4. Cara menyimpan konten video dalam database SQLite (bukan jalur video)

  5. Operator