De juiste en eenvoudige oplossing is:
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
De opgemaakte datumkolom foo
is een geheel nieuwe kolom voor de queryplanner, die toevallig conflicteert met de tabelkolom foo
. In ORDER BY- en GROUP BY-clausules hebben de namen van uitvoerkolommen voorrang op tabelkolommen. De ongekwalificeerde naam foo
zou verwijzen naar de uitvoerkolom.
Om de originele tabelkolom in de ORDER BY-component te gebruiken, hoeft u alleen maar tabel-kwalificeer de kolom .
Ik heb alle tabelkolommen in een tabel gekwalificeerd om mijn punt te verduidelijken. Zou in dit geval alleen vereist zijn in de ORDER BY-clausule. Tabelalias b
is alleen voor het gemak.