Den korrekta och enkla lösningen är:
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
Den formaterade datumkolumnen foo
är en helt ny kolumn för frågeplaneraren, som råkar komma i konflikt med tabellkolumnen foo
. I satserna ORDER BY och GROUP BY har utdatakolumnernas namn företräde framför tabellkolumner. Det okvalificerade namnet foo
skulle hänvisa till utdatakolumnen.
Om du vill använda den ursprungliga tabellkolumnen i ORDER BY-satsen kvalificerar du bara kolumnen .
Jag tabellkvalificerade alla tabellkolumner för att förtydliga min poäng. Skulle endast krävas i ORDER BY-klausulen i detta fall. Tabellalias b
är bara för bekvämlighets skull.