Создание с ПОМОЩЬЮ (CTE) с использованием PostgreSQL

#postgresql

#postgresql

Вопрос:

Я пытаюсь создать временную таблицу внутри с помощью функции в PostgreSQL.

Пример:

 with mm
as
(
     select * from test
)
create table xyz as select * from mm
;
  

Примечание: ошибка при создании

Ответ №1:

 create table xyz as 

with mm
as
(
     select * from test
)
select * from mm 
where myfield = myvalue
;
  

Соответствующая документация. В документации нет явного описания того, как использовать create table as вместе с CTE. Однако в нем четко указан его синтаксис (упрощенный):

 CREATE TABLE table_name
    AS query
  

Где может быть запрос (цитирование):

Команда ВЫБОРА, ТАБЛИЦЫ или ЗНАЧЕНИЙ или команда ВЫПОЛНЕНИЯ, которая запускает подготовленный запрос ВЫБОРА, ТАБЛИЦЫ или ЗНАЧЕНИЙ.

Из этого должно быть довольно ясно, почему ваша попытка не удалась.

Комментарии:

1. По вашему мнению, «ГДЕ» должно быть после «выбрать * из мм», верно?

2. @Meen Да, это правильно, я добавил простое условие where к своему ответу.

3. Да! Я понял. Большое вам спасибо.