La soluzione corretta e semplice è:
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
La colonna della data formattata foo
è una colonna completamente nuova per il pianificatore di query, che è in conflitto con la colonna della tabella foo
. Nelle clausole ORDER BY e GROUP BY, i nomi delle colonne di output hanno la precedenza sulle colonne della tabella. Il nome non qualificato foo
farebbe riferimento alla colonna di output.
Per utilizzare la colonna della tabella originale nella clausola ORDER BY, è sufficiente qualificare come tabella la colonna .
Ho qualificato come tabella tutte le colonne della tabella per chiarire il mio punto. In questo caso sarebbe richiesto solo nella clausola ORDER BY. Alias tabella b
è solo per comodità.