Оператор WITH не работает в Postgresql - PullRequest
0 голосов
/ 18 февраля 2011

У меня есть следующий SQL-запрос, который я запускаю в PgAdmin:

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 для достижения тех же результатов?

Ответы [ 3 ]

1 голос
/ 18 февраля 2011

Я нашел это и это полезным.и убедитесь, что вы используете версию> = 8.4, как тогда, когда это было введено.Не имея;не должно быть проблемой.

Ваш синтаксис выглядит правильным, хотя ... это определенно работает.

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

Поэтому я бы проверил версию, которую вы используете.так как это дает ошибку, которую вы испытываете.

0 голосов
/ 18 февраля 2011

Что не так с простым SQL?

SELECT 
  int1, 
  <complex computation involving a large number of values of int2 and int3 from atbl>
FROM 
  atbl;
0 голосов
/ 18 февраля 2011

Вы можете заменить его следующим:

SELECT int1, 
       (complex computation involving a large number of values of int2 and int3 from TABLE1)
FROM ( 
   SELECT int1, int2, int3 
   FROM atbl
) table1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...