Mysql
 sql >> база данни >  >> RDS >> Mysql

Каква е разликата между ifnull и coalesce в mysql?

Основната разлика между двете е, че IFNULL функцията приема два аргумента и връща първия, ако не е NULL или вторият, ако първият е NULL .

COALESCE функцията може да приема два или повече параметъра и връща първия параметър, различен от NULL, или NULL ако всички параметри са нулеви, например:

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'

АКТУАЛИЗИРАНЕ: MSSQL извършва по-строга проверка на типове и параметри. Освен това той няма IFNULL функция, но вместо това ISNULL функция, която трябва да знае типовете на аргументите. Следователно:

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

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

Също така COALESCE функцията в MSSQL изисква поне един параметър да не е нулев, следователно:

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. docker-compose:повторно инициализиране на MySQL db всеки път

  2. Мониторинг на производителността на MySQL с ClusterControl

  3. C# MySQL втори DataReader в DataReader while цикъл

  4. Примери за JDBC изрази – вмъкване, изтриване, актуализиране, избор на запис

  5. Получаване на грешка в MYSQL:Код на грешка:2006 - MySQL сървърът е изчезнал