Объединить поля в SQL Server - PullRequest
2 голосов
/ 06 июля 2010

Как объединить строки в SQL Server 2000

Ответы [ 2 ]

1 голос
/ 06 июля 2010

Вы пытались использовать FOR XML RAW в SQL Server 2000?

0 голосов
/ 06 июля 2010

Вы можете создать пользовательскую функцию для выполнения конкатенации строк для каждого значения идентификатора.

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
...