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 v
ORDER BY
aGROUP BY
klauzule, ale ne vWHERE
neboHAVING
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