Nie, nie ma sposobu na odwoływanie się do aliasów, ale można przypisać wyrażenie do zmiennej, a następnie odwołać się do zmiennej w tej samej klauzuli select.
Wewnątrz instrukcji select przypisanie zmiennych jest zawsze wykonywane przez operator infix :=
. *W SET
oświadczenie, może to być =
lub :=
.
np.
SELECT
ord_id
, candy_id
, price
, quantity
, @exc_cost := price * quantity AS exc_cost
, @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>
Możesz także warunkowo wykonać przypisanie zmiennych.
np.
IF(quantity > 90,
@exc_cost := price * quantity * 0.95
, @exc_cost := price * quantity) AS exc_cost
Uwaga 1:W przypadku braku miar zagregowanych i klauzuli grupuj według, zmienne są oceniane zgodnie z kolejnością kolumn:
SELECT @t, @t+2 FROM (SELECT @t := 1) a
generuje wynik
@t @t+2
1 3