SQL Просмотр псевдонима не работает в операторе H2 SELECT - PullRequest
0 голосов
/ 05 января 2020

У меня есть таблица student и представление annual_performance. Я создаю представление student_annual_performance, как показано ниже

CREATE OR REPLACE VIEW student_annual_performance AS SELECT
s, ap
FROM student s INNER JOIN annual_performance ap ON s.id = ap.studentId;

Это прекрасно работает в PostgreSQL, но дает ошибку ниже в базе данных H2 в памяти

SQL Состояние: 42S22 Код ошибки: 42122 Сообщение: столбец «ap» не найден; SQL оператор:

1 Ответ

0 голосов
/ 05 января 2020

Вы используете тайную функцию PostgreSQL -specifi c, которой нет в других базах данных. Вы не можете использовать имя таблицы (представления) или его псевдоним в качестве выражения значения в H2 и в большинстве других баз данных.

Вместо них можно использовать … AS SELECT (s.column1, s.column2, …) s, (ap.column1, ap.column2, …) ap FROM … вместо обеих баз данных, где column1, column2 et c. являются именами столбцов в таблице student и в представлении annual_performance, чтобы получить тот же результат.

Вы также можете использовать … AS SELECT * FROM …, чтобы получить все значения в отдельных столбцах.

...