SQL COALESCE Command Features

In order to concatenate strings (delimited by with a string) from multiple rows in a SQL Table to a single field the Coalesce command is the one to use.  Typically COALESCE is used to return a single field value which represents multiple rows concatenated by a string.

DECLARE @EmployeeList varchar(100)
SELECT @EmployeeList = COALESCE(@EmployeeList + ', ', '') + 
   CAST(Emp_UniqueID AS varchar(5))
FROM SalesCallsEmployees
WHERE SalCal_UniqueID = 1
SELECT @EmployeeList

The output from the following would be something like 1,2, 3

The following example uses a function to return a joined table field with the primary data selected.  The challenge was to return a single row from one table while returning values from the joined table into a single field.  To accomplish this I used syntax similar to the following:


SELECT personID,dbo.fn_CombineValues(personID) Roles
  FROM [People]


The following function was created to support the above sql query.  The function accepts the key to be used in the the joined table and returns a string value representing in this case the roles related to the primary table.

CREATE FUNCTION fn_CombineValues
     @FK_ID INT --The foreign key from TableA which is used to fetch corresponding records
 DECLARE @SomeColumnList VARCHAR(8000);
 SELECT @SomeColumnList = COALESCE(@SomeColumnList + ', ', '') + CAST(Role AS varchar(20)) 
 FROM dbo.SA_PeopleRoles C
 INNER JOIN dbo.SA_Roles r ON r.roleid=c.RoleID
: 8pt; overflow: visible; border-style: none; padding: 0px;"> WHERE C.personID = @FK_ID;
 SELECT @SomeColumnList




comments powered by Disqus


Recent Tweets

@ACLU n to pay for a long time. I yu the
#Xamarin Certified Trophy arrived today! @XamarinU thanks! https://t.co/TpYsSkBW6Y
Retweeted by @dyardy #PowerShell and Kerberos double hop. Slides, module, and demos. aka.ms/pskdh #PshSummit
@danrigby @Raspberry_Pi Very cool, let us know how it goes, thx