Mysql
 sql >> Base de données >  >> RDS >> Mysql

Utilisation d'un alias de colonne dans la même clause SELECT

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