2016-06-08 8 views
0

Ich führe eine Abfrage für eine Datenbank und ich habe eine "Koordinate" Spalte in einer Tabelle. Die Daten in der Spalte Koordinaten sind in folgendem Format:Separate 1 Koordinaten Spalte in 2 Lat und Long Spalten Postgresql

{"lat":40.74,"lng":-73.98} 

Ich brauche eine Abfrage auszuführen, die die Breite und Länge in separaten Spalten angezeigt werden, so würden es eine Spalte mit der Bezeichnung „Breite“ sein, die anzeigt, 40.74 und eine andere Spalte mit der Bezeichnung "longitude", die 73.98 anzeigt.

Antwort

0

Unter der Annahme, Ihre Spaltendatentyp JSon Sie jedes Element wie folgt auswählen:

SELECT 
    column ->>'lat'::text AS lat, 
    column ->>'long'::text AS long 
FROM table 

SQLFiddle

auch als Notiz, die nichts mit der Frage zu sein, ist, betrachten PostGIS mit räumlichen zu speichern und verwalten Daten.

0

CREATE TABLE tbPlace ( PlaceId int, Koord VARCHAR (255) );

Einfügen in tbPlace (placeId, coord) Werte (1, '"lat": 40.74, "lng": - 73.98');

Einfügen in tbPlace (placeId, coord) Werte (1, '"lat": - 20.74, "lng": 20.98');

select placeId , Guss (substr (Koord, Instr (Koord 'lat') + 5, Instr (Koord, '') - Instr (Koord 'lat') + 5) als float) als latitude1 , Besetzung (substr (coord, instr (coord, 'lng') + 5, Länge (coord) -instr (coord, 'lng') + 5) als float) als longitude1 from tbPlace;

drop table tbplace;

Verwandte Themen