微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

子字符串区域内对象的id的最后3个字符

如何解决子字符串区域内对象的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 举报,一经查实,本站将立刻删除。