如何将CTE转换为嵌套SELECT [英] how to convert CTE to nested SELECT
本文介绍了如何将CTE转换为嵌套SELECT的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有以下发布的查询。我想使用嵌套的SELECT
语句,而不是CTE
。我希望外部SELECT
语句说明表grid_cell_data
中包含的列
我不想使用j.*
我想使用列名
查询:
WITH j AS (
SELECT
ST_AsMVTGeom(
st_geomfromtext(geometryofcellrepresentativetobuffer),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096,4096)))
FROM grid_cell_data where id = 3
)
SELECT ST_AsMVT(j.*) FROM j
GRID_CELL_DATA表
CREATE TABLE IF NOT EXISTS grid_cell_data (
id SERIAL PRIMARY KEY,
isTreatment boolean,
isBuffer boolean,
geometryOfCellRepresentativeToTreatment geometry,
geometryOfCellRepresentativeToBuffer geometry
)
推荐答案
只需选择CTE/子查询中需要的所有记录,在外部查询中可以继续使用j
或j.*
。如果需要进一步选择特定列,请将它们放在SELECT
中的圆括号中,以便它表示ST_AsMVT
的记录,例如
WITH j AS (
SELECT *,
ST_AsMVTGeom(
st_geomfromtext(geometryofcellrepresentativetobuffer),
ST_MakeBox2D(ST_Point(0, 0), ST_Point(4096,4096))) AS mvt_geom
FROM grid_cell_data where id = 3
)
SELECT ST_AsMVT((id,isTreatment,isBuffer,mvt_geom))
FROM j
这篇关于如何将CTE转换为嵌套SELECT的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文