Запрос выбора PostgreSQL для извлечения координат из точки - PullRequest
0 голосов
/ 27 сентября 2019

У меня ниже таблица со значениями координат в столбце типа данных текста 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')

В каждой строке нет ни одного координаты. Я хочу разделить с помощью точки с запятой.

я хочу нижевывод.

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

1 Ответ

1 голос
/ 27 сентября 2019

Вы можете использовать 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; 
...