postgresql - 具有多个选择的Postgres SELECT

标签 postgresql select postgis

我正在尝试在 PostGIS 函数中使用两个 SELECT 语句的输出。

执行此操作的正确语法是什么?我在第二个 SELECT 语句处或附近遇到语法错误。

SELECT ST_Split(tracks, roads)
FROM
(
    SELECT * FROM (SELECT ST_Buffer(road_geom,50) FROM table1 WHERE a = '' AND b = '') as roads,
    SELECT * FROM (SELECT the_geom FROM table2 WHERE c = '' AND d = '') as tracks

)

错误输出:

 ERROR:  syntax error at or near "SELECT"
 LINE 5:  SELECT * FROM (SELECT the_geom FROM table2...
     ^
********** Error **********
ERROR: syntax error at or near "SELECT"
SQL state: 42601
Character: 178

谢谢!

最佳答案

演示使用 CTE 的一种方法:

WITH    roads as (SELECT ST_Buffer(road_geom,50) as road FROM table1 WHERE a = '' AND b = ''),
        tracks as (SELECT the_geom as track FROM table2 WHERE c = '' AND d = '')
SELECT ST_Split( (select track from tracks), (select road from roads) );

文档位于 http://www.postgresql.org/docs/current/static/queries-with.html

关于postgresql - 具有多个选择的Postgres SELECT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19595377/

相关文章:

MySQL多表SELECT

arrays - 使用 schema.CreateTable 生成 SQL 字符串失败,postgresql ARRAY

C 库在 Postgres 中给出 '__gxx_personality_v0 ' 错误

hibernate - 为什么 org.hibernate.dialect.PostgreSQLDialect 不能转换为 org.hibernate.dialect.Dialect?

postgresql - 如何索引 Postgres jsonb 数据中的选择键?

mysql left join subselect

database - PostgreSQL -> 甲骨文复制

c - select()/poll() 是否适合 C 语言中的简单实时游戏服务器?

postgresql - 应该使用哪种数据类型来存储 GeoJSON 对 Postgres 的响应

sql - PostGIS 多个表的交集