「エラー:列「colname」が存在しません」が表示された場合 UNIONなどの演算子を使用する場合のPostgreSQLの「」 、EXCEPT 、またはINTERSECT 、列名でエイリアス列を参照しようとしている可能性があります。
UNIONなどの演算子を使用する場合 、INTERSECT 、およびEXCEPT 、列にエイリアスがある場合は、そのエイリアスをORDER BYで使用する必要があります その列を参照する句。
エラーを修正するには、エイリアスで列を参照するだけです。
または、エイリアスを完全に削除して、列名を直接参照することもできます。
エラーを生成するコードの例を次に示します。
(SELECT TeacherName t FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC; 結果:
ERROR: column "teachername" does not exist LINE 4: ORDER BY TeacherName ASC;
ここでは、ORDER BYでエイリアスを使用しませんでした エラーが発生した句。
この問題を修正する1つの方法は、ORDER BYでエイリアスを使用することです。 条項:
(SELECT TeacherName t FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY t ASC; もう1つのオプションは、エイリアスを完全に削除することです。
(SELECT TeacherName FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;