sql >> Databasteknik >  >> RDS >> Mysql

Använda kolumnalias i samma SELECT-sats

Nej, det finns inget sätt att referera till alias, men du kan tilldela uttrycket till en variabel och sedan hänvisa till variabeln i samma select-sats.

Inuti en select-sats görs variabeltilldelningen alltid av infixoperatorn := . *I en SET uttalande kan det vara antingen = eller := .

t.ex.

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 även villkorligt utföra variabeltilldelning.

t.ex.

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

Anmärkning 1:I avsaknad av aggregerade mått och gruppera efter klausul, utvärderas variablerna enligt kolumnordning:

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

producerar utdata

@t   @t+2
 1      3


  1. MySQL:Beräknar återstående dagar av prenumerationer baserat på betalningar

  2. Vilken funktion ska jag använda för att hasha lösenord i MySQL?

  3. Hur importerar jag en SQL-fil till databasen och ignorerar X-rader i filen?

  4. Hur ser jag aktiva SQL Server-anslutningar?