sql >> Database >  >> RDS >> Mysql

Kolomalias gebruiken in dezelfde SELECT-clausule

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


  1. Forceer mysql om de beperking van een externe sleutel te omzeilen

  2. SOM van MySQL voor elke n record

  3. Bereken diepte in een ouder-kindmodel in MySQL

  4. Voer Oracle Client uit in 32-bits modus op een 64-bits machine