Sql server SQL Server:GPS使用计算列协调距离

Sql server SQL Server:GPS使用计算列协调距离,sql-server,gps,calculated-columns,Sql Server,Gps,Calculated Columns,我有一个表,我在每个记录上插入GPS坐标(纬度/经度) 表模式类似于:(Id、Time、Lat、Lon) 是否可以使用计算列计算两个连续记录的距离? 模式变成这样的东西:(Id,Time,Lat,Lon,Distanceof(Id-1,Id)) 注:我知道如何计算两点的距离,但我不知道是否可以访问计算列上的多行数据。不可能直接使用计算列定义中其他行的值,但可以创建一个用户定义的函数并使用它: CREATE FUNCTION dbo.CalcDistance(@prev_row_id INT, @

我有一个表,我在每个记录上插入GPS坐标(纬度/经度)

表模式类似于:(Id、Time、Lat、Lon)

是否可以使用计算列计算两个连续记录的距离? 模式变成这样的东西:(Id,Time,Lat,Lon,Distanceof(Id-1,Id))


注:我知道如何计算两点的距离,但我不知道是否可以访问计算列上的多行数据。

不可能直接使用计算列定义中其他行的值,但可以创建一个用户定义的函数并使用它:

CREATE FUNCTION dbo.CalcDistance(@prev_row_id INT, @row_id INT)
AS 
  ...

然后将计算的列表达式定义为dbo.CalcDistance(Id-1,Id)

您可以创建函数distance of来计算距离。 您可以选择作为

从表中选择id、时间、纬度、经度、距离(纬度、液化天然气、半径)。 它将为每一行计算。但是,如果您要做很多行,这将非常耗时