Ne, neexistuje způsob, jak odkazovat na aliasy, ale můžete přiřadit výraz k proměnné a pak odkazovat na proměnnou ve stejné klauzuli select.
Uvnitř příkazu select přiřazení proměnné vždy provádí infixový operátor :=
. *V SET
může být buď =
nebo :=
.
např.
SELECT
ord_id
, candy_id
, price
, quantity
, @exc_cost := price * quantity AS exc_cost
, @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>
Můžete také podmíněně provádět přiřazení proměnných.
např.
IF(quantity > 90,
@exc_cost := price * quantity * 0.95
, @exc_cost := price * quantity) AS exc_cost
Poznámka 1:Při absenci agregovaných měr a skupin podle klauzule se proměnné vyhodnocují podle pořadí sloupců:
SELECT @t, @t+2 FROM (SELECT @t := 1) a
vytváří výstup
@t @t+2
1 3