My T-SQL query generates following result set
ID Date 756 2011-08-29 756 2011-08-31 756 2011-09-01 756 2011-09-02
How can I convert like this
ID Date 756 2011-08-29, 2011-08-31, 2011-09-01, 2011-09-02
Any suggestion would be appreciated.
Solution 1. Available in SQL Server 2016 and later. -- Sort the values: SELECT value FROM STRING_SPLIT(@temp, ',') ORDER BY value; -- Remove duplicates: SELECT DISTINCT value FROM STRING_SPLIT(@temp, ',');
In order to fetch the comma separated (delimited) values from the Stored Procedure, you need to make use of a variable with data type and size same as the Output parameter and pass it as Output parameter using OUTPUT keyword.
You could use FOR XML PATH
and STUFF
to concatenate the multiple rows into a single row:
select distinct t1.id, STUFF( (SELECT ', ' + convert(varchar(10), t2.date, 120) FROM yourtable t2 where t1.id = t2.id FOR XML PATH ('')) , 1, 1, '') AS date from yourtable t1;
See SQL Fiddle with Demo
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With