区域内对象 id 的最后 3 个字符的子字符串
Substring last 3 characters of an id of an object within an area
我打算从 id 中获取最后三个字符。在我的代码中,您可以看到我正在使用 ST_WITHIN() 来获取另一个对象中的一个对象。然后我抓取该区域内所有对象的“node_id”。下面是代码:
SELECT SUBSTRING ((
SELECT "node_id" from sewers.structures
WHERE(
ST_WITHIN(
ST_CENTROID((ST_SetSRID(structures.geom, 4326))),
ST_SetSRID((SELECT geom FROM sewers."Qrtr_Qrtr_Sections" WHERE "plat_page" = '510C'),4326)) )),5,3)
这部分代码可以正常工作:
SELECT "node_id" from sewers.structures
WHERE(
ST_WITHIN(
ST_CENTROID((ST_SetSRID(structures.geom, 4326))),
ST_SetSRID((SELECT geom FROM sewers."Qrtr_Qrtr_Sections" WHERE "plat_page" = '510C'),4326)) )
但是当我在 运行 上选择 SELECT SUBSTRING()
时,出现以下错误:
ERROR: more than one row returned by a subquery used as an expression
SQL state: 21000
应该对每个元素而不是整个查询调用 substring
函数:
SELECT SUBSTRING("node_id",5,3)
FROM sewers.structures
WHERE ST_WITHIN ...
我打算从 id 中获取最后三个字符。在我的代码中,您可以看到我正在使用 ST_WITHIN() 来获取另一个对象中的一个对象。然后我抓取该区域内所有对象的“node_id”。下面是代码:
SELECT SUBSTRING ((
SELECT "node_id" from sewers.structures
WHERE(
ST_WITHIN(
ST_CENTROID((ST_SetSRID(structures.geom, 4326))),
ST_SetSRID((SELECT geom FROM sewers."Qrtr_Qrtr_Sections" WHERE "plat_page" = '510C'),4326)) )),5,3)
这部分代码可以正常工作:
SELECT "node_id" from sewers.structures
WHERE(
ST_WITHIN(
ST_CENTROID((ST_SetSRID(structures.geom, 4326))),
ST_SetSRID((SELECT geom FROM sewers."Qrtr_Qrtr_Sections" WHERE "plat_page" = '510C'),4326)) )
但是当我在 运行 上选择 SELECT SUBSTRING()
时,出现以下错误:
ERROR: more than one row returned by a subquery used as an expression
SQL state: 21000
应该对每个元素而不是整个查询调用 substring
函数:
SELECT SUBSTRING("node_id",5,3)
FROM sewers.structures
WHERE ST_WITHIN ...