In SQL Server COALESCE function, its argument returns the first parameter is not NULL, the following effects:
SELECT COALESCE(NULL,NULL,N'A',NULL,NULL)
result:
SELECT COALESCE(NULL,NULL,N'A',N'B',N'C',NULL)
result:
COALESCE function must be used with which parameter must be the same type, for example, the following example COALESCE function parameters, both string type digital type have an error is reported:
SELECT COALESCE(NULL,NULL,N'A',N'B',100,NULL)
result:
In addition, if all the parameters COALESCE functions are constants NULL , then it will be given:
SELECT COALESCE(NULL,NULL,NULL)
result:
But if the argument of the function COALESCE have variable or table column names, etc., even if the parameters of the function COALESCE returns NULL will not be given:
DECLARE @v1 NVARCHAR(50)=NULL DECLARE @v2 NVARCHAR(50)=NULL DECLARE @v3 NVARCHAR(50)=NULL SELECT COALESCE(NULL,@v1,@v2,@v3,NULL)
result:
CREATE TABLE #Demo ( Col1 NVARCHAR(50), Col2 NVARCHAR(50), Col3 NVARCHAR(50) ) INSERT INTO #Demo(Col1,Col2,Col3) VALUES(NULL,NULL,NULL) SELECT COALESCE(NULL,Col1,Col2,Col3,NULL) FROM #Demo
result: