La solution correcte et simple est :
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
La colonne de date formatée foo
est une toute nouvelle colonne pour le planificateur de requêtes, qui entre en conflit avec la colonne de table foo
. Dans les clauses ORDER BY et GROUP BY, les noms des colonnes de sortie ont priorité sur les colonnes de table. Le nom non qualifié foo
ferait référence à la colonne de sortie.
Pour utiliser la colonne de table d'origine dans la clause ORDER BY, il suffit de qualifier la colonne de table .
J'ai qualifié de table toutes les colonnes de table pour clarifier mon point. Ne serait requis que dans la clause ORDER BY dans ce cas. Alias de table b
est juste pour plus de commodité.