Use COALESCE function in SQL Server

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:

 

Guess you like

Origin www.cnblogs.com/OpenCoder/p/11445312.html