I am using SQL Server 2012. I need to concatenate results from query below into one long string. So, instead of getting row results I need only one string. I would like to populate @TEMPS_MEASURE with results.
Currently, results looks like this:

Instead of this, I would like only one string returned with <br/> between columns, like this:
H 1 topla kuhinja (2 - 6 °C):<br/>Temperatura: 5.00°C<br/>H 2 hladna kuhinja (2 - 6 °C):<br/>Temperatura: 4.00°C<br/>How should I change query?
Query:
DECLARE @TEMPS_MEASURE NVARCHAR(500) = NULL SELECT CASE WHEN HATE.HATE_TE1 IS NULL AND HATE.HATE_AC1 IS NULL AND HATE.HATE_TE2 IS NULL THEN NULL ELSE COLI.COLI_NME + ':<br/>' END AS EQ_NAME , CASE HATE.HATE_TE1 WHEN NULL THEN NULL ELSE 'Temperatura: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE1,2,0) AS NUMERIC(10,2))) + '°C<br/>' END AS TEMP , CASE HATE.HATE_AC1 WHEN NULL THEN NULL WHEN '1' THEN 'Ukrep: Zavremo jed / ivilo<br/>' WHEN '2' THEN 'Ukrep: Izmerimo sredino temperaturo jedi / ivila (TS*)<br/>' WHEN '3' THEN 'Ukrep: Dodatno ogrejemo<br/>' END ACTION_UPON , CASE HATE.HATE_TE2 WHEN NULL THEN NULL ELSE 'Temperatura sredia: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE2,2,0) AS NUMERIC(10,2))) + '°C<br/>' END AS TEMP_CENTER FROM CAHATE HATE INNER JOIN CACOLI COLI ON COLI.COLI_KEY = HATE.COLI_KEY WHERE HACC_KEY = 160001417 SOLUTION:I've created function with FOR XML PATH:
ALTER FUNCTION dbo.f_CAHATE_Get_Temperatures (@iHACC_KEY INTEGER) RETURNS NVARCHAR(500) AS BEGIN DECLARE @TEMPS_MEASURE NVARCHAR(500) = NULL SELECT @TEMPS_MEASURE = (SELECT CONCAT( (CASE WHEN HATE.HATE_TE1 IS NULL AND HATE.HATE_AC1 IS NULL AND HATE.HATE_TE2 IS NULL THEN '' ELSE COLI.COLI_NME + ':' END) , (CASE HATE.HATE_TE1 WHEN NULL THEN '' ELSE 'Temperatura: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE1,2,0) AS NUMERIC(10,2))) + '°C;' END) , (CASE HATE.HATE_AC1 WHEN NULL THEN '' WHEN '1' THEN 'Ukrep: Zavremo jed / ivilo;' WHEN '2' THEN 'Ukrep: Izmerimo sredino temperaturo jedi / ivila (TS*);' WHEN '3' THEN 'Ukrep: Dodatno ogrejemo;' END) , (CASE HATE.HATE_TE2 WHEN NULL THEN '' ELSE 'Temperatura sredia: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE2,2,0) AS NUMERIC(10,2))) + '°C;' END) ) FROM CAHATE HATE INNER JOIN CACOLI COLI ON COLI.COLI_KEY = HATE.COLI_KEY WHERE HACC_KEY = @iHACC_KEY for xml path('') ) RETURN @TEMPS_MEASURE ENDYou can also use CONCAT function as it was introduced in SQL Server 2012 to combine different string values into one. It also handles different data types to convert into string type. So, you will not have type mismatch exception.
SELECT CONCAT( (CASE WHEN HATE.HATE_TE1 IS NULL AND HATE.HATE_AC1 IS NULL AND HATE.HATE_TE2 IS NULL THEN '' ELSE COLI.COLI_NME + ':<br/>' END) , (CASE HATE.HATE_TE1 WHEN NULL THEN '' ELSE 'Temperatura: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE1,2,0) AS NUMERIC(10,2))) + '°C<br/>' END) , (CASE HATE.HATE_AC1 WHEN NULL THEN '' WHEN '1' THEN 'Ukrep: Zavremo jed / ivilo<br/>' WHEN '2' THEN 'Ukrep: Izmerimo sredino temperaturo jedi / ivila (TS*)<br/>' WHEN '3' THEN 'Ukrep: Dodatno ogrejemo<br/>' END) , (CASE HATE.HATE_TE2 WHEN NULL THEN '' ELSE 'Temperatura sredia: ' + CONVERT(VARCHAR(20), CAST(ROUND(HATE.HATE_TE2,2,0) AS NUMERIC(10,2))) + '°C<br/>' END) ) FROM CAHATE HATE INNER JOIN CACOLI COLI ON COLI.COLI_KEY = HATE.COLI_KEY WHERE HACC_KEY = 160001417




