sql >> Databáze >  >> RDS >> PostgreSQL

PostgreSQL nepřijímá alias sloupce v klauzuli WHERE

Položíte dvě otázky:
1.

Proč nemohu odkazovat na alias nákladů SELECT v klauzuli WHERE?

2.

Ale proč seřadit podle ceny; je povoleno?


Manuál má odpověď pro oba zde:

Název výstupního sloupce lze použít jako odkaz na hodnotu sloupce vORDER BY a GROUP BY klauzule, ale ne v WHERE nebo HAVING doložky; tam musíte místo toho napsat výraz.

Je definován standardem SQL a důvodem je sekvence událostí v SELECT dotaz. V té době WHERE jsou použity klauzule, výstupní sloupce v SELECT seznam ještě nebyl spočítán. Ale pokud jde o ORDER BY , výstupní sloupce jsou snadno dostupné.

Takže i když je to zpočátku nepohodlné a matoucí, stále to dává smysl.

Související:

  • Podmínka počtu PostgreSQL Where
  • Nejlepší způsob, jak získat počet výsledků před použitím LIMIT



  1. Co je to přesně BLOB v kontextu DBMS

  2. oracle 11g a integrace hibernate spring a jsf

  3. Hierarchické dotazy v MySQL

  4. 10 efektivních způsobů, jak být v práci produktivnější