2011-02-18 137 views
0

不工作,我有以下SQL查詢我在pgAdmin的運行:WITH語句在PostgreSQL

ERROR: syntax error at or near "WITH" 
LINE 1: WITH TABLE1 AS 

爲什麼會出現這種情況:

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 

運行它是一個錯誤信息的結果? with語句應該對PostgreSQL提供:

http://www.postgresql.org/docs/8.4/static/queries-with.html

據瞭解,該版本比8.4更低。是否有使用WITH來實現相同結果的替代方法?

+1

我不能說PostgreSQL,但我知道如果前面的語句沒有以分號結束,SQL Server會感到困惑。你的查詢是大批量的一部分嗎? – 2011-02-18 09:17:34

+2

當你鏈接到8.4文檔時,你確實使用PostgreSQL 8.4,對吧? :) – Kissaki 2011-02-18 09:18:31

回答

1

我發現thisthis有幫助。並確保您使用的版本大於或等於8.4。沒有;不應該是一個問題。

雖然你的語法看起來不錯,但這絕對有效。

WITH table1 AS (
SELECT * FROM atbl 
) 
select * from table1 

所以我會檢查你正在運行的版本。因爲這會導致您遇到的錯誤。

0

您可以用下面的替換:

 
SELECT int1, 
     (complex computation involving a large number of values of int2 and int3 from TABLE1) 
FROM ( 
    SELECT int1, int2, int3 
    FROM atbl 
) table1 
0

有什麼不好簡單的SQL?

SELECT 
    int1, 
    <complex computation involving a large number of values of int2 and int3 from atbl> 
FROM 
    atbl;