本文介绍了如何基于查询和从SELECT语句检索的行创建表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想创建一个包含XY值的表。XY的这些值将从ST_Envelope返回的几何图形中获得。我觉得应该是这样的:

create table table_name(
    select from ST_X(ST_Envelope(ST_GeomFromText(..))
    )
    

请告诉我如何创建用SELECT-STATEMENT中的值填充的表。

推荐答案

使用ST_DumpPoints,然后使用ST_XST_Y,例如:

CREATE TABLE table_name (x numeric, y numeric);

INSERT INTO table_name
SELECT ST_X(geom),ST_Y(geom) FROM (
  SELECT (ST_DumpPoints(ST_Envelope('your_geometry'))).geom
) j (geom);

或者如果您想创建与查询列完全相同的表

CREATE TABLE table_name AS
SELECT ST_X(geom),ST_Y(geom) FROM (
  SELECT (ST_DumpPoints(ST_Envelope('your_geometry'))).geom
) j (geom);

演示:db<>fiddle

这篇关于如何基于查询和从SELECT语句检索的行创建表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

10-20 22:53