Hoe to combine rows in sql server 2000
A:
You can create a user defined function to perform the string concatenation for each ID value.
create table t (id int,start varchar(100),finish varchar(100))
insert into t
select 1,'Start_Main', '' union all
select 1,'Start_Submain1', '' union all
select 2,'Start_Main', '' union all
select 2,'Start_Submain2', 'End_Submain2' union all
select 2,'Start_Submain3', 'End_Submain3' union all
select 2,'Start_Submain1', '' union all
select 2,'Start_Submain4', 'End_Submain4'
Select * from t
go
/* User Defined Function to perform string concatenation per ID */
create function udfStringConcat (@ID int)
returns varchar(500)
as
begin
declare @x varchar(500)
set @x = ''
select @x = @x + t.start + ',' + case when t.finish <> '' then t.finish + ',' else t.finish end
from t
where t.id = @ID
select @x = @x + 'End_Submain1,End_Main'
return @x
end
go
select id, dbo.udfStringConcat(id)
from t
group by id
go
drop function udfStringConcat
drop table t
go
Joe Stefanelli
2010-07-06 03:37:27
That is what I don't want to do. I want to do it in a single query(like for xml path() in sql 2005).
learner
2010-07-06 03:45:17
@learner: Not sure why you edited your original post to remove all of the details, but I'd be curious to see how you used XML RAW in a single query to achieve the output in the format you specified in your original question. Please post your solution.
Joe Stefanelli
2010-07-09 13:51:56
@learner - could you reinstate your code or provide another example or post another question to see if we could help again?
Cade Roux
2010-07-13 13:57:39