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;
我有以下 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;