PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

PostgreSQL не приема псевдоним на колона в клаузата WHERE

Задавате два въпроса:
1.

Защо не мога да се позова на псевдонима на разходите SELECT в клаузата WHERE?

2.

Но защо да поръчвате по разход; е позволено?


Ръководството има отговор и за двете тук:

Името на изходна колона може да се използва за препращане към стойността на колоната вORDER BY и GROUP BY клаузи, но не и в WHERE или HAVING клаузи; там трябва да напишете израза вместо това.

Дефинира се от стандарта SQL и причината е последователността от събития в SELECT запитване. В момента WHERE се прилагат клаузи, извеждат колони в SELECT списъкът все още не е изчислен. Но когато става дума за ORDER BY , изходните колони са лесно достъпни.

Така че макар това да е неудобно и объркващо в началото, все пак има смисъл.

Свързано:

  • Условие за отчитане на PostgreSQL Where
  • Най-добрият начин да получите резултат, преди да бъде приложен LIMIT



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Какво точно обяснява PostgreSQL?

  2. Кога да използваме наследени таблици в PostgreSQL?

  3. LEAST() Функция в PostgreSQL

  4. Как да проверите версията на PostgreSQL

  5. Компресиране на текст в PostgreSQL