有什么办法可以将位置列拆分为纬度和经度吗?

时间:2017-01-10 22:58:15

标签: sql sql-server google-maps

ALTER TABLE My_table ADD Latitude  VARCHAR(8000)
ALTER TABLE My_table ADD Longitude VARCHAR(8000)

SELECT 
    [Latitude] = CONVERT(VARCHAR(8000), SUBSTRING('[Location 1]', ',', 1)), 
    [Longitude] = CONVERT(VARCHAR(8000), SUBSTRING('[Location 1]', ',', -1))

我收到此错误

  

参数数据类型varchar对于子字符串函数的参数2无效。

1 个答案:

答案 0 :(得分:1)

以下是基于数据元素的示例。它根据我对您的查询尝试内容的理解来选择纬度和经度。这适用于测试目的的变量:

DECLARE @a varchar(60)
SET @a = '(39.2346264640, -76.6031273836)'

SELECT [Latitude]=CONVERT(Decimal(16,13), SUBSTRING(Left(@a, Len(@a)-1), Charindex(',', @a) + 1, Len(@a))), 
    [Longitude]=CONVERT(Decimal(16,13), SUBSTRING(@a, 2, Charindex(',', @a) - 2))

这种情况下的输出是:

Latitude            Longitude
-76.6031273836000   39.2346264640000