Správné a jednoduché řešení je:
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
Formátovaný sloupec data foo
je zcela nový sloupec pro plánovač dotazů, který je v rozporu se sloupcem tabulky foo
. V klauzulích ORDER BY a GROUP BY mají názvy výstupních sloupců přednost před sloupci tabulky. Nekvalifikované jméno foo
bude odkazovat na výstupní sloupec.
Chcete-li použít původní sloupec tabulky v klauzuli ORDER BY, stačí označit sloupec podle tabulky .
Všechny sloupce tabulky jsem kvalifikoval do tabulky, abych objasnil svůj názor. V tomto případě by bylo vyžadováno pouze v klauzuli ORDER BY. Alias tabulky b
je jen pro pohodlí.