Как создать таблицу из запроса на выборку?

У меня есть "table1" с "id" и столбцом геометрии линии ("geom_line"). Я хочу создать «таблицу2», тогда как она заполняется путем выбора всех строк, находящихся внутри многоугольника. Я написал следующий код. Может кто поправит, пожалуйста?

SELECT id, ST_Intersection(ST_GeomFromText('POLYGON((443425 4427680, 441353 4427680, 441368 4426075, 443762 4426149, 443425 4427680))', 32650)
, geom_line)
    FROM trajectory where geom_line IS NOT null

В таблицу2 ИЗ моей базы данных


person Arash m    schedule 25.08.2015    source источник


Ответы (2)


Создание таблицы на основе выбора выполняется с использованием create table ... as select ... в стандартном SQL, и Postgres также поддерживает это:

create table table2
as
SELECT id, ST_Intersection(ST_GeomFromText('POLYGON((443425 4427680, 441353 4427680, 441368 4426075, 443762 4426149, 443425 4427680))', 32650)    , geom_line)
FROM trajectory 
where geom_line IS NOT null

Более подробная информация, как обычно, в руководстве:
http://www.postgresql.org/docs/current/static/sql-createtableas.html

person a_horse_with_no_name    schedule 25.08.2015

Ниже также приведен один из вариантов для вашего требования (поддерживается в MS-SQL).

SELECT ColumnName1,ColumnName1 INTO TableTest FROM Your_Table
person Raj Kamuni    schedule 25.08.2015
comment
PostgreSQL поддерживает этот синтаксис, но он нестандартен и устарел. CREATE TABLE ... AS SELECT ... следует предпочесть. - person Craig Ringer; 25.08.2015