PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Коригирайте „ГРЕШКА:  колона „colname“ не съществува“ в PostgreSQL, когато използвате UNION, EXCEPT или INTERSECT

Ако получавате „ГРЕШКА:колона „име на колона“ не съществува“ ” в PostgreSQL, когато използвате оператор като UNION , 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;

Решение 2

Друга възможност е да премахнете изцяло псевдонима:

(SELECT TeacherName FROM Teachers)
EXCEPT
(SELECT StudentName FROM Students)
ORDER BY TeacherName ASC;

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Превръщане на произволно много редове в колони в PostgreSQL

  2. Настройка на входно/изходни (I/O) операции за PostgreSQL

  3. Съхранявайте и извличайте изображения в Postgresql с помощта на Java

  4. Добавете месеци към дата в PostgreSQL

  5. PostgreSql :Json масив към редове с помощта на странично присъединяване