2015-09-17 39 views
1

我在我的表是多角形柱这样的字符替换,目前它显示的数据:在多边形数据

((114.22043434297007,22.278209),(114.22020060314003,22.282611726493),(114.21950163468,22.286972052322),(114.21834416903994,22.291247985168), etc... 

我想改变它显示是这样的:

((lon1 lat1, lon2 lat2, lon... lat..., lonN latN)) 

这是Postgres可能吗?

+3

如何显示这些值? Postgres本身就是数据库 –

+0

看起来像'asewkt()'和剥离'POLYGON()'包装器完成这项工作。但为什么在数据库中呢? – dhke

回答

0

使用regexp_replace()

create table poly_test (id int, poly polygon); 
insert into poly_test values 
(1, '((114.22043434297007,22.278209),(114.22020060314003,22.282611726493),(114.21950163468,22.286972052322))'); 

select id, replace (regexp_replace (poly::text, '\((.*?),(.*?)\)', '\1 \2', 'g'), ',', ', ') 
from poly_test; 

id |           replace 
----+----------------------------------------------------------------------------------------------- 
    1 | (114.22043434297 22.278209, 114.22020060314 22.282611726493, 114.21950163468 22.286972052322) 
(1 row)