2010-07-06 7 views

Répondre

1

Avez-vous essayé d'utiliser FOR XML RAW dans SQL Server 2000?

+0

Je vais essayer .. Merci monsieur – learner

+0

@learner: Je ne sais pas pourquoi vous avez modifié votre publication originale pour supprimer tous les détails, mais je serais curieux de voir comment vous avez utilisé XML RAW dans une seule requête pour atteindre la sortie le format que vous avez spécifié dans votre question d'origine. S'il vous plaît poster votre solution. –

+0

Pour le xml raw ne fonctionnera pas .. J'ai essayé. – learner

0

Vous pouvez créer une fonction définie par l'utilisateur pour effectuer la concaténation de chaînes pour chaque valeur d'ID.

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 
+0

C'est ce que je ne veux pas faire. Je veux le faire dans une seule requête (comme pour xml path() dans sql 2005). – learner

Questions connexes