【发布时间】:2012-05-10 15:07:17
【问题描述】:
我有以下在 PgAdmin 中运行的 SQL 查询:
WITH TABLE1 AS
( SELECT int1, int2, int3 FROM atbl
)
SELECT int1, <complex computation involving a large number of values of int2 and int3 from TABLE1>
FROM TABLE1
运行的结果是报错:
ERROR: syntax error at or near "WITH"
LINE 1: WITH TABLE1 AS
为什么会这样? with 语句应该可用于 PostgreSQL:
http://www.postgresql.org/docs/8.4/static/queries-with.html
据了解,此版本低于8.4。是否有替代使用 WITH 来获得相同结果的替代方法?
【问题讨论】:
-
我不能说 PostgreSQL,但我知道如果前面的语句没有以分号结束,SQL Server 会感到困惑。您的查询是大批量的一部分吗?
-
当您链接到 8.4 文档时,您确实使用 PostgreSQL 8.4,对吗? :)
-
实际上是 8.1.17 版本。真的没想到这个看来 WITH 语句是在这个版本之后引入的……
-
没错,WITH 是在 8.4 中引入的。但是你为什么还要使用 8.1 呢?这是生命的尽头,不受支持。
-
那么有什么可以用来代替 WITH 语句的吗?在第一个查询中的每一行的第二个选择中,我需要进行一些涉及该表中所有数据的计算。我想避免为了实现这一目标而重新进行第一次查询...
标签: sql postgresql