SQL, How to Concatenate results?
With MSSQL you can do something like this: declare @result varchar(500) set @result=”” select @result = @result + ModuleValue + ‘, ‘ from TableX where ModuleId = @ModuleId
With MSSQL you can do something like this: declare @result varchar(500) set @result=”” select @result = @result + ModuleValue + ‘, ‘ from TableX where ModuleId = @ModuleId
Test Data DECLARE @Table1 TABLE(ID INT, Value INT) INSERT INTO @Table1 VALUES (1,100),(1,200),(1,300),(1,400) Query SELECT ID ,STUFF((SELECT ‘, ‘ + CAST(Value AS VARCHAR(10)) [text()] FROM @Table1 WHERE ID = t.ID FOR XML PATH(”), TYPE) .value(‘.’,’NVARCHAR(MAX)’),1,2,’ ‘) List_Output FROM @Table1 t GROUP BY ID Result Set ╔════╦═════════════════════╗ ║ ID ║ List_Output ║ ╠════╬═════════════════════╣ ║ 1 ║ … Read more
Query: SELECT m.maskid , m.maskname , m.schoolid , s.schoolname , maskdetail = STUFF(( SELECT ‘,’ + md.maskdetail FROM dbo.maskdetails md WHERE m.maskid = md.maskid FOR XML PATH(”), TYPE).value(‘.’, ‘NVARCHAR(MAX)’), 1, 1, ”) FROM dbo.tblmask m JOIN dbo.school s ON s.ID = m.schoolid ORDER BY m.maskname Additional information: String Aggregation in the World of SQL Server
No CURSOR, WHILE loop, or User-Defined Function needed. Just need to be creative with FOR XML and PATH. [Note: This solution only works on SQL 2005 and later. Original question didn’t specify the version in use.] CREATE TABLE #YourTable ([ID] INT, [Name] CHAR(1), [Value] INT) INSERT INTO #YourTable ([ID],[Name],[Value]) VALUES (1,’A’,4) INSERT INTO #YourTable ([ID],[Name],[Value]) … Read more