sql >> Databáze >  >> RDS >> Mysql

Jaký je rozdíl mezi ifnull a sloučením v mysql?

Hlavní rozdíl mezi těmito dvěma je, že IFNULL funkce vezme dva argumenty a vrátí první, pokud není NULL nebo druhý, pokud je první NULL .

COALESCE funkce může mít dva nebo více parametrů a vrací první parametr, který není NULL, neboli NULL pokud jsou všechny parametry null, například:

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'

AKTUALIZACE: MSSQL provádí přísnější kontrolu typu a parametrů. Dále nemá IFNULL funkce, ale místo toho ISNULL funkce, která potřebuje znát typy argumentů. Proto:

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

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

Také COALESCE funkce v MSSQL vyžaduje, aby alespoň jeden parametr nebyl null, proto:

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. Vyberte pouze některé sloupce z tabulky na LEFT JOIN

  2. Seskupování záznamů ze smyčky while | PHP

  3. 3 oblasti, které budou mít prospěch z použití nástroje pro sledování výkonu serveru SQL Server

  4. Jak povolit vzdálený přístup k databázi PostgreSQL