Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Apa perbedaan antara ifnull dan menyatu di mysql?

Perbedaan utama antara keduanya adalah IFNULL fungsi mengambil dua argumen dan mengembalikan yang pertama jika bukan NULL atau yang kedua jika yang pertama adalah NULL .

COALESCE fungsi dapat mengambil dua atau lebih parameter dan mengembalikan parameter non-NULL pertama, atau NULL jika semua parameter nol, misalnya:

SELECT IFNULL('some value', 'some other value');
-> returns 'some value'

SELECT IFNULL(NULL,'some other value');
-> returns 'some other value'

SELECT COALESCE(NULL, 'some other value');
-> returns 'some other value' - equivalent of the IFNULL function

SELECT COALESCE(NULL, 'some value', 'some other value');
-> returns 'some value'

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'

PERBARUI: MSSQL melakukan pemeriksaan tipe dan parameter yang lebih ketat. Selanjutnya, tidak memiliki IFNULL fungsi tetapi sebagai gantinya ISNULL fungsi, yang perlu mengetahui jenis argumen. Oleh karena itu:

SELECT ISNULL(NULL, NULL);
-> results in an error

SELECT ISNULL(NULL, CAST(NULL as VARCHAR));
-> returns NULL

Juga COALESCE fungsi di MSSQL membutuhkan setidaknya satu parameter untuk menjadi non-null, oleh karena itu:

SELECT COALESCE(NULL, NULL, NULL, NULL, NULL);
-> results in an error

SELECT COALESCE(NULL, NULL, NULL, NULL, 'first non-null value');
-> returns 'first non-null value'


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Dapatkan id catatan yang terakhir dimasukkan di mybatis

  2. Praktik Terbaik untuk Merancang Peran Pengguna dan Sistem Izin?

  3. Menanamkan mysql di aplikasi desktop java

  4. Cara MEMESAN BERDASARKAN KASUS di Doctrine2 (Symfony2)

  5. Apa arti dari <> dalam kueri mysql?