Mysql
 sql >> Baza danych >  >> RDS >> Mysql

Używanie aliasu kolumny w tej samej klauzuli SELECT

Nie, nie ma sposobu na odwoływanie się do aliasów, ale można przypisać wyrażenie do zmiennej, a następnie odwołać się do zmiennej w tej samej klauzuli select.

Wewnątrz instrukcji select przypisanie zmiennych jest zawsze wykonywane przez operator infix := . *W SET oświadczenie, może to być = lub := .

np.

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

Możesz także warunkowo wykonać przypisanie zmiennych.

np.

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

Uwaga 1:W przypadku braku miar zagregowanych i klauzuli grupuj według, zmienne są oceniane zgodnie z kolejnością kolumn:

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

generuje wynik

@t   @t+2
 1      3


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Jak uzyskać wstawiony identyfikator za pomocą Spring Jdbctemplate.update(String sql, obj...args)

  2. Importowanie większych plików SQL do MySQL

  3. Wybierz pierwsze 10 odrębnych wierszy w mysql

  4. Wirtualny host WAMP nie działa

  5. Policz liczbę rzędów w 30-dniowych pojemnikach