SQL 视图别名在 H2 SELECT 语句中不起作用
Posted
技术标签:
【中文标题】SQL 视图别名在 H2 SELECT 语句中不起作用【英文标题】:SQL View alias not working in H2 SELECT statement 【发布时间】:2020-01-05 14:34:18 【问题描述】:我有一张桌子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】:您使用了其他数据库中不存在的神秘 PostgreSQL 特定功能。在 H2 和大多数其他数据库中,您不能使用表(视图)名称或其别名作为值表达式。
您可以在两个数据库中改用… AS SELECT (s.column1, s.column2, …) s, (ap.column1, ap.column2, …) ap FROM …
,其中column1
、column2
等是表student
和视图annual_performance
中的列名,以获得相同的结果。
您还可以使用… AS SELECT * FROM …
来获取单独列中的所有值。
【讨论】:
以上是关于SQL 视图别名在 H2 SELECT 语句中不起作用的主要内容,如果未能解决你的问题,请参考以下文章