Den rigtige og enkle løsning er:
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
Den formaterede datokolonne foo
er en helt ny kolonne til forespørgselsplanlæggeren, der tilfældigvis er i konflikt med tabelkolonnen foo
. I ORDER BY og GROUP BY klausuler har outputkolonnernes navne forrang over tabelkolonner. Det ukvalificerede navn foo
ville henvise til outputkolonnen.
For at bruge den oprindelige tabelkolonne i ORDER BY-sætningen skal du bare table-kvalificere kolonnen .
Jeg tabelkvalificerede alle tabelkolonner for at tydeliggøre min pointe. Vil kun være påkrævet i ORDER BY-klausulen i dette tilfælde. Tabelalias b
er kun for nemheds skyld.