【问题标题】:SQL View alias not working in H2 SELECT statementSQL 视图别名在 H2 SELECT 语句中不起作用
【发布时间】: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语句:

【问题讨论】:

    标签: database select view alias h2


    【解决方案1】:

    您使用了其他数据库中不存在的神秘 PostgreSQL 特定功能。在 H2 和大多数其他数据库中,您不能使用表(视图)名称或其别名作为值表达式。

    您可以在两个数据库中改用… AS SELECT (s.column1, s.column2, …) s, (ap.column1, ap.column2, …) ap FROM …,其中column1column2 等是表student 和视图annual_performance 中的列名,以获得相同的结果。

    您还可以使用… AS SELECT * FROM … 来获取单独列中的所有值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 2019-09-22
      • 2018-07-18
      • 2013-07-28
      相关资源
      最近更新 更多