我尝试计算两个物体之间的距离。STDistance - 计算两个物体之间的距离
declare @p1 geography
declare @p2 geography
SELECT @p1 = WKT from tbl_1 where loc = "school"
SELECT @p2 = WKT from tbl_2 where loc = "school"
select round(@p1.STDistance(@p2)/1000,0) Distance_KM
,但我得到一个错误的列loc
无效的列名
此列存在,并且数据类型为geography
。
列WKT
使用填充:
UPDATE [dbo].[lbl_1]
SET [WKT] = geography::STPointFromText('POINT(' + CAST([Longitude] AS VARCHAR(20)) + ' ' + CAST([Latitude] AS VARCHAR(20)) + ')', 4326)
GO
有什么不对?
你的意思是'loc'列的地理类型而不是'VARCHAR' – ughai
也可以同时处理你的表'tbl_1'和'tbl_2'有一个'loc'列吗? – ughai
学校是一个字符串还是一个列? sql服务器将其视为一个列,这就是为什么我认为你得到你的错误。试试这个'declare @ p1 geography select 1 WHERE @ p1 =“school”' – ughai