Comment ajouter une colonne constante à une requête SQL sans l'analyser?

J'ai une requête complexe fournis par l'autre partie de l'application et j'ai besoin d'ajouter une colonne constante et de transmettre la requête de poursuite de la procédure (SSRS ServerReport). La requête peut être composé de plusieurs requêtes connecté avec UNION ALL et peut contenir ORDER BY.

Edit: j'ai oublier de souligner ce qui est inclus dans le titre sans analyse. Je ne sais rien au sujet de la requête (conditions, les sous-requêtes) donc, l'analyse et modifié, il est plutôt dangereux.

Exemple:

declare @t table(id int)
insert into @t values(1)
insert into @t values(2) 

La requête:

(select  id from @t where id=1
union all
select  id from @t where id=2) order by id desc

De Sortie Requis:

id | Par
----------
2  | Hello   
1  | Hello

Tentative (ne fonctionne pas avec l'ORDRE PAR):

SELECT *, 'Hello' Par from
((select  id from @t where id=1
    union all
    select  id from @t where id=2) order by id desc) tbl

Solution est de travailler sur SQL Server 2008+.

  • Je m'excuse pour le manque d'ouverture de parenthèses dans la Tentative de requête.
  • Merci à tous les contributeurs. J'ai accepté qu'il n'y a pas de solution.
InformationsquelleAutor IvanH | 2012-04-23