Skip to main content

Coalesce function

Coalesce function returns the first non-null value among the arguments.

Syntax:

Coalesce (expression [,..n])

Here is example using Coalesce function

Example 1

DECLARE @Str1 varchar(10),@str2 varchar(20),@Str3 varchar(20)

SET @Str2='Sql' , @Str3='Server'

SELECT COALESCE(@Str1,@str2,@Str3) As [Coalesce]


In above example @Str2 value is ‘Sql’ , @str3 value is ‘Server’  and @str1 values is Null because it not assigned any value .

Output:

It return’s “Sql” because Coalesce function return’s first non null value.








Example 2:

Coalesce in select statement.

IF OBJECT_ID('Employee','U') IS NOT NULL
DROP TABLE Employee


CREATE TABLE Employee
(
  ID INT IDENTITY(1,1) PRIMARY KEY ,
  NAME VARCHAR(20),
  SALARY INT
)

INSERT INTO Employee  (NAME,SALARY) VALUES ('Rakesh',5000),(NULL,6000),('Naresh',7000) ,(NULL,8000)


SELECT * FROM Employee










In above Query Result ID 2, 4 of Name Column is null.   We have to replace Name Column null value to some other value (“Madhu”) using select statement.

SELECT ID,COALESCE(NAME,'Madhu') AS Name,SALARY FROM Employee

Output:









Example 3:

Coalesce in where condition.

DECLARE @Lod_ID int =null

SET @Lod_ID =3

SELECT * FROM Employee where ID= COALESCE(@Lod_ID,ID)
Output:

It only select ID value 3 row .because of in above @Lod_ID variable is set to 3 values . Coalesce funtion returns first non-null value baecuse it’s selects only 3 of ID colums rows only.  





Example 4:

DECLARE @Lod_ID int =null

SELECT * FROM Employee where ID= COALESCE(@Lod_ID,ID)

In above example if we are not set any value to @Lod_ID variable . we are get all row from Employee table .

Comments

Post a Comment

Popular posts from this blog

How to Use Merge Statement Using XML Data

We now that merge statement in SQL SERVER. With Merge statement we can merge the data from Source table into Target table. In the Last article we have already seen about Merge Statement .   These articles we will work around merge statement over xml data type. We know that xml data type SQL SERVER. XML Data type is used to storing xml data used Bulk Insert Data into SQL Tables. Example: --Create Student Table if object_id ( 'Student' ) is null create table Student ( id int identity ( 1 , 1 ) , Name varchar ( 20 ), Marks int ) Declare Xml Data Type and Assign Some Xml Data. Declare @Data xml set @Data = '<Root> <Student> <Name>Rakesh</Name> <Marks>80</Marks> </Student> <Student> <Name>Mahesh</Name> <Marks>90</Marks> </Student> <Student> <Name>Gowtham</Name...

Rank Functions in SQL SERVER

1 . ROW_NUMBER () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns the sequantial number of a row within the a partition of result set at 1 for the first row of the each partition. 2. RANK () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns rank for rows within the partition of result set. 3. DENSE_RANK () OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Returns rank for rows within the partition of result set.With out any gaps in the ranking. 4. NTILE ( INTEGER_EXPRESSION ) OVER ( [PARTITION BY CLAUSE] < ORDER BY CLUASE >): Distributes the rows in an ordered partition into a specified number of groups. Examples: --create Employee table create table Employee (                 EmpId int identity ( 1 , 1 ) primary key ,              ...