L'utilisation d'un champ calculé dans la clause where
Est-il possible d'utiliser un champ calculé dans la where
clause?
Je veux faire quelque chose comme
SELECT a, b, a+b as TOTAL FROM (
select 7 as a, 8 as b FROM DUAL
UNION ALL
select 8 as a, 8 as b FROM DUAL
UNION ALL
select 0 as a, 0 as b FROM DUAL
)
WHERE TOTAL <> 0
;
mais je reçois ORA-00904: "TOTAL": invalid identifier
.
J'ai donc utiliser
SELECT a, b, a+b as TOTAL FROM (
select 7 as a, 8 as b FROM DUAL
UNION ALL
select 8 as a, 8 as b FROM DUAL
UNION ALL
select 0 as a, 0 as b FROM DUAL
)
WHERE a+b <> 0
;
Vous devez vous connecter pour publier un commentaire.
Logiquement, le
select
clause est l'une des dernières pièces d'une requête évalué, les alias et des colonnes dérivées ne sont pas disponibles. (Sauf pourorder by
, qui logiquement arrive en dernier.)À l'aide d'une table dérivée est loin autour de cette: