Je projette une colonne dans mon instruction select. ("projet" au sens de l'algèbre relationnelle.) Dans le but de réduire la duplication de code, existe-t-il un moyen de referencer cette colonne projetée dans ma clause where? Ou y a-t-il une meilleure façon de faire cela?
Exemple:
select (A.Column + A.Column2) * 8 'Column' from A where (A.Column + A.Column2) * 8 < 1000
Fondamentalement, ce que je request, si nous considérons des colonnes comme étant "namespaced" par table (où A est un espace de noms et A.Column est la colonne dans l'espace de noms A), est: est-il un moyen de se référer à l'espace de noms pour la table éphémère que nous sélectionnons actuellement dans la clause where de cette table elle-même?
Une autre méthode consiste à utiliser cte, une expression de table commune.
with cte as( select (A.Column + A.Column2) * 8 as [Column] from A ) Select * from cte Where [Column] < 1000
Tu peux le faire;
select * from ( select (A.Column + A.Column2) * 8 as Col from A ) tmp where Col<1000