Non, il n'y a pas moyen de faire référence à des alias, mais vous pouvez affecter l'expression à une variable, puis faire référence à la variable dans la même clause select.
À l'intérieur d'une instruction select, l'affectation de variable est toujours effectuée par l'opérateur infixe :=
. *Dans un SET
déclaration, il peut s'agir soit de =
ou :=
.
par exemple.
SELECT
ord_id
, candy_id
, price
, quantity
, @exc_cost := price * quantity AS exc_cost
, @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>
Vous pouvez également effectuer une affectation de variable conditionnelle.
par exemple.
IF(quantity > 90,
@exc_cost := price * quantity * 0.95
, @exc_cost := price * quantity) AS exc_cost
Remarque 1 :En l'absence de mesures agrégées et de clause group by, les variables sont évaluées selon l'ordre des colonnes :
SELECT @t, @t+2 FROM (SELECT @t := 1) a
produit la sortie
@t @t+2
1 3