2009-09-11 10 views
0

J'ai une sous-requête qui retourne une colonne, montrant comme GroupType, je veux alors faire une fonction CASE sur ce résultat dans la requête principale, mais j'ai un nom de colonne invalide lors de l'utilisation de l'instruction CASE.Renvoi aux résultats d'une sous-requête dans la requête principale

Puis-je faire dans SQL dois-je faire référence à par un autre nom

+0

difficile de proposer de meilleures façons de le faire sans voir quel code vous avez. Je suggère cependant que les sous-requêtes corrélées sont souvent une mauvaise technique à utiliser pour obtenir des données. – HLGEM

Répondre

0
SELECT CASE 
     WHEN 
     (
     SELECT column 
     FROM othertable 
     ) = 1 
     THEN '1' 
     ELSE '2' 
     END 
FROM mytable 

Pour réutiliser le résultat sous-requête:

SELECT subvalue, CASE subvalue WHEN 1 THEN 1 ELSE 2 END 
FROM (
     SELECT (
       SELECT column 
       FROM othertable 
       ) AS subvalue 
     FROM mytable 
     ) q 
+0

le problème est, j'ai besoin de l'utiliser deux fois, une fois pour regrouper par le résultat, et une fois pour changer la sortie en fonction d'un groupe. J'espérais ne pas devoir taper la sous-requête deux fois. – Audioillity

+2

Pourriez-vous, s'il vous plaît poster votre requête telle qu'elle est maintenant? – Quassnoi

Questions connexes