im en utilisant des SSMS et j'ai une table qui ressemble à ceci;
ID / Requirement / Requirement Status / Comments 1 / Req 1 / Yes / 1 / Req 2 / no / Needs Work
3 Réponses :
Qu'est-ce qui vous arrête d'utiliser Union of 25 SELECT?
select ID, 'Req 1' as Requirement, Req1 as RequirementStatus, Req1Comment as Comments from t union all select ID, 'Req 2' as Requirement, req2 as RequirementStatus, req2Comment as Comments from t union all ... select ID, 'Req 25' as Requirement, req25 as RequirementStatus, req25Comment as Comments from t
Merci! J'ai appliqué cela et quelques minutes de travail La vue a été créée et le rapport est prêt à construire!
declare @t table ( id int identity, Req1 varchar(10), Req1Comment varchar(20), Req2 varchar(10), Req2Comment varchar(20) ) insert into @t (Req1, Req1Comment, Req2, req2Comment) values ('yes', null, 'no', 'needs work'), ('no', 'not working', 'yes', ''); select id, 'Req 1' as Requirement, Req1 as [Requirement Status], Req1Comment as Comments from @t union all select id, 'Req 2', Req2, Req2Comment from @t; select id, concat('Req ', v.val) as Requirement, case v.val when 1 then Req1 else Req2 end as [Requirement Status], case v.val when 1 then Req1Comment else Req2Comment end as Comments from @t as t cross apply (values(1), (2)) as v(val); select id, concat('Req ', v.val) as Requirement, choose(v.val, Req1, Req2) as [Requirement Status], choose(v.val, Req1Comment, Req2Comment) as Comments from @t as t cross apply (values(1), (2)) as v(val);
Je suggérerais d'utiliser si vous ne voulez pas taper 25 lignes pour cross appliquer code>:
valeurs code>, vous peut utiliser une feuille de calcul pour générer le code. p> p>
Pourrait être fait en utilisant
Union tout code>.