如何解决子字符串区域内对象的id的最后3个字符
我打算从 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)) )
但是当我对选择运行 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 ...
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。