sql >> Database teknologi >  >> RDS >> Mysql

Brug af kolonnealias i samme SELECT-klausul

Nej, der er ikke en måde at henvise til aliaser på, men du kan tildele udtrykket til en variabel og derefter henvise til variablen i den samme select-klausul.

Inde i en select-sætning udføres variabeltildelingen altid af infix-operatoren := . *I et SET sætning, kan den enten være = eller := .

for eksempel.

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

Du kan også betinget udføre variabeltildeling.

for eksempel.

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

Note 1:I mangel af aggregerede mål og grupper efter klausul, evalueres variablerne i henhold til kolonnerækkefølge:

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

producerer output

@t   @t+2
 1      3


  1. Laravel-forespørgsel for at få resultater med mindst ét ​​element i en matrix?

  2. .patch_storage

  3. MySQL-antal og grupper efter dag

  4. ScaleGrid nu tilgængelig i Sydney AWS-regionen