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

Perbedaan Antara NullIf() dan IfNull() di SQLite

SQLite memiliki fungsi yang disebut nullif() dan fungsi lain yang disebut ifnull() , yang masing-masing memiliki tujuan yang berbeda.

  • nullif() memungkinkan Anda untuk memperlakukan nilai tertentu sebagai NULL. Anda dapat menganggapnya sebagai "kembalikan NULL jika ...".
  • ifnull() memungkinkan Anda untuk mengganti nilai NULL dengan nilai lain. Anda dapat menganggapnya sebagai “jika NULL, maka …”.

Jadi mereka pada dasarnya melakukan kebalikan satu sama lain. Satu mengganti nilai NULL dengan nilai lain, dan yang lainnya mengganti nilai lain dengan NULL.

Contoh

Dalam beberapa kasus, kedua fungsi dapat mengembalikan hasil yang sama. Misalnya:

SELECT
  nullif(1, 2),
  ifnull(1, 2);

Hasil:

nullif(1, 2)  ifnull(1, 2)
------------  ------------
1             1           

nullif() fungsi mengembalikan salinan argumen pertamanya jika argumennya berbeda dan NULL jika argumennya sama. Dalam hal ini, argumennya berbeda dan mengembalikan argumen pertama.

ifnull() fungsi di sisi lain, mengembalikan salinan argumen non-NULL pertama. Dalam hal ini, kedua argumen tersebut bukan NULL sehingga argumen pertama dikembalikan.

Dengan contoh berikut, kita mulai melihat perbedaan antara kedua fungsi ini:

SELECT
  nullif(1, 1),
  ifnull(1, 1);

Hasil:

nullif(1, 1)  ifnull(1, 1)
------------  ------------
              1           

nullif() fungsi mengembalikan NULL ketika kedua argumen sama. Dalam hal ini kedua argumen itu sama, jadi nullif() melakukan tugasnya dan mengembalikan NULL.

ifnull() function mengembalikan argumen non-NULL pertama, dan dalam hal ini, ia mengembalikan argumen pertama.

Fakta bahwa kedua argumen itu sama tidak berarti apa-apa bagi ifnull() . Itu hanya mengembalikan argumen non-NULL pertama. Karena itu, jika kedua argumen adalah NULL maka ia mengembalikan NULL.

Mari coba tambahkan beberapa NULL.

SELECT
  nullif(NULL, 1),
  ifnull(NULL, 1);

Hasil:

nullif(NULL, 1)  ifnull(NULL, 1)
---------------  ---------------
                 1              

Dalam hal ini, nullif() mengembalikan NULL karena NULL adalah argumen pertama (ingat bahwa nullif() mengembalikan argumen pertamanya jika kedua argumen berbeda).

ifnull() di sisi lain mengembalikan argumen non-NULL pertamanya.

Begini tampilannya jika kita bertukar argumen.

SELECT
  nullif(1, NULL),
  ifnull(1, NULL);

Hasil:

nullif(1, NULL)  ifnull(1, NULL)
---------------  ---------------
1                1              

Kedua argumen berbeda sehingga nullif() mengembalikan argumen pertama.

Argumen pertama bukan NULL dan jadi ifnull() mengembalikannya.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Mengakses database satu aplikasi dari aplikasi lain

  2. Bagaimana cara menyisipkan gambar di perpustakaan persistensi ruangan?

  3. Simulasikan ORDER BY di SQLite UPDATE untuk menangani batasan keunikan

  4. Operator

  5. 5 Cara Menjalankan Script SQL dari File di SQLite