sql >> Databáze >  >> RDS >> Mysql

Použití aliasu sloupce ve stejné klauzuli SELECT

Ne, neexistuje způsob, jak odkazovat na aliasy, ale můžete přiřadit výraz k proměnné a pak odkazovat na proměnnou ve stejné klauzuli select.

Uvnitř příkazu select přiřazení proměnné vždy provádí infixový operátor := . *V SET může být buď = nebo := .

např.

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

Můžete také podmíněně provádět přiřazení proměnných.

např.

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

Poznámka 1:Při absenci agregovaných měr a skupin podle klauzule se proměnné vyhodnocují podle pořadí sloupců:

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

vytváří výstup

@t   @t+2
 1      3


  1. mysql Kde není v použití dvou sloupců

  2. Převést MySQL na SQlite

  3. Získejte nadřazenou MySQL nejvyšší úrovně

  4. SQL:Jak vybrat řádky, které sčítají určitou hodnotu