Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Spaltenalias in derselben SELECT-Klausel verwenden

Nein, es gibt keine Möglichkeit, auf Aliase zu verweisen, aber Sie können den Ausdruck einer Variablen zuweisen und dann in derselben select-Klausel auf die Variable verweisen.

Innerhalb einer Select-Anweisung erfolgt die Variablenzuweisung immer durch den Infix-Operator := . *In einem SET Anweisung kann es entweder = sein oder := .

z.B.

SELECT 
    ord_id
  , candy_id
  , price
  , quantity
  , @exc_cost := price * quantity AS exc_cost
  , @exc_cost * @tax_rate AS my_favourite_field
...
<FROM CLAUSE>

Sie können Variablen auch bedingt zuweisen.

z.B.

IF(quantity > 90, 
     @exc_cost := price * quantity * 0.95
   , @exc_cost := price * quantity) AS exc_cost

Hinweis 1:In Ermangelung von aggregierten Kennzahlen und Gruppieren nach-Klauseln werden die Variablen gemäß der Spaltenreihenfolge ausgewertet:

SELECT @t, @t+2 FROM (SELECT @t := 1) a

erzeugt die Ausgabe

@t   @t+2
 1      3