PostgreSQL select 查询从一个点提取坐标

PostgreSQL select query to extract coordinates from a point

我有以下 table 坐标值在 postgres 文本数据类型列中

create table xy(coordinates text)

insert into xy values('1234567.67890,45678.901234;7890123.67890,67890.801234;5678902.67834,90123.101234')
insert into xy values('3214567.234721,12456.890123')
insert into xy values('4532890.783421,453212.23412')

每行包含任何 coordindates.i 想要使用分号分隔的行。

我想要下面的输出。

x
-
1234567.67890,45678.901234
7890123.67890,67890.801234
5678902.67834,90123.101234
3214567.234721,12456.890123
4532890.783421,453212.23412

您可以使用 string_to_array()unnest()

select t.x
from xy, unnest(string_to_array(xy.coordinates, ';')) as t(x);

在线示例:https://rextester.com/COI94042

编辑:我认为使用古老的 9.1 版本以下应该有效:

select unnest(string_to_array(xy.coordinates, ';')) as x
from xy;