2016-06-08 40 views
0

我正在數據庫上運行查詢,我在表中有一個「座標」列。在座標列中的數據是在以下格式:獨立1座標列成2 Lat和長列Postgresql

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

我需要運行查詢,將顯示在單獨的列的經度和緯度,所以就標記爲「緯度」的列顯示40.74和另一列標記爲「經度」的列顯示73.98。

回答

0

假設是JSON列數據類型,你可以選擇這樣的每一個元素:

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

SQLFiddle

另外,作爲注意,沒有什麼可與問題,可以考慮使用PostGIS存儲和管理空間數據。

0

CREATE TABLE tbPlace ( PlaceId INT, 座標VARCHAR(255) ); (1,'「lat」:40.74,「lng」: - 73.98');插入tbPlace(placeId,coord) 。插入到tbPlace(placeId,coord) values(1,'「lat」: - 20.74,「lng」:20.98');

選擇 placeId ,澆鑄(SUBSTR(座標,INSTR(座標, 'LAT')+ 5,INSTR(座標, '') - INSTR(座標, 'LAT')+ 5)作爲浮動)作爲latitude1 ,cast(substr(coord,instr(coord,'lng')+ 5,length(coord)-instr(coord,'lng')+ 5)as longitude1 from tbPlace;

drop table tbplace;