#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. Да! Я понял. Большое вам спасибо.