ISNULL vs COALESCE
ISNULL |
COALESCE |
The ISNULL Function is a built-in function to replace nulls with specified replacement values. |
The COALESCE() function returns the first NON-NULL value. |
ISNULL() is a T-SQL (Transact SQL) function and only work with Microsoft products e.g. Microsoft SQL Server |
The COALESCE function is defined by the ANSI SQL standard and supported in all major databases e.g. MySQL, Oracle, PostgreSQL, DB2 |
The ISNULL() method takes only two parameters, it returns the first parameter if it’s not null and return the second parameter if the first parameter is null |
COALESCE can take multiple parameters, and return the NOT NULL parameter starting from first to
last |
ISNULL ( check_expression , replacement_value ) |
COALESCE ( expression [ ,...n ] ) |
ISNULL is faster than COALESCE in SQL Server because of its a built-in function implemented in the Database engine |
COALESCE slow compare to ISNULL |
ISNULL just looks the data type of the first argument and makes everything of that type |
COALESCE correctly promotes its arguments to the highest data type in the expression list |
SELECT 17 / ISNULL(CONVERT(INT,NULL), 3.00); Output 5 |
SELECT 17 / COALESCE(CONVERT(INT,NULL), 3.00) Output 5.666666 |
ISNULL can only work with two values |
COALESCE is more flexible and allows you to provide multiple columns and default values |
DECLARE @x VARCHAR(10)
DECLARE @y VARCHAR(10)
DECLARE @z VARCHAR(10)
DECLARE @a VARCHAR(10)
SELECT @a = 'SQL'
SELECT COALESCE(@x,@y,@z,@a)
SELECT ISNULL(@x,@y);
Really good information to show through this blog. I really appreciate you for all the valuable information that you are providing us through your blog.
ReplyDelete