適切で簡単な解決策は次のとおりです。
SELECT to_char(b.foo,'dd/MM/yyyy') as foo, b.bar
FROM baz b
ORDER BY b.foo;
フォーマットされた日付列foo
はクエリプランナーの完全に新しい列であり、テーブルの列foo
と競合します。 。 ORDERBY句とGROUPBY句では、出力列の名前がテーブル列よりも優先されます。修飾されていない名前foo
出力列を参照します。
ORDER BY句で元のテーブル列を使用するには、列をテーブル修飾するだけです。 。
私の主張を明確にするために、すべてのテーブル列をテーブル修飾しました。この場合、ORDERBY句でのみ必要になります。テーブルエイリアスb
便宜上です。