Nee, er is geen manier om naar aliassen te verwijzen, maar u kunt de expressie toewijzen aan een variabele en vervolgens verwijzen naar de variabele in dezelfde select-clausule.
Binnen een select statement wordt variabele toewijzing altijd gedaan door de infix-operator :=
. *In een SET
statement, het kan ofwel =
. zijn of :=
.
bijv.
SELECT
ord_id
, candy_id
, price
, quantity
, @exc_cost := price * quantity AS exc_cost
, @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>
U kunt variabele toewijzing ook voorwaardelijk uitvoeren.
bijv.
IF(quantity > 90,
@exc_cost := price * quantity * 0.95
, @exc_cost := price * quantity) AS exc_cost
Opmerking 1:Bij afwezigheid van geaggregeerde metingen en gegroepeerd per clausule, worden de variabelen geëvalueerd volgens kolomvolgorde:
SELECT @t, @t+2 FROM (SELECT @t := 1) a
produceert de uitvoer
@t @t+2
1 3