我有两张桌子:
CREATE TABLE [dbo].[Gps] (
[Date] [datetime] NOT NULL,
[Latitude] [decimal](9, 6) NOT NULL,
[Longitude] [decimal](9, 6) NOT NULL
)
CREATE TABLE [dbo].[Stops] (
[StopName] [varchar](128) NOT NULL,
[StopLat] [decimal](9, 6) NOT NULL,
[StopLon] [decimal](9, 6) NOT NULL
)
我想使用我用这个签名编写的 Haversine() 标量函数为每个 Gps 条目获取最近的停止:
CREATE FUNCTION [dbo].[Haversine]
(
@aLatitude DECIMAL(9, 6),
@aLongitude DECIMAL(9, 6),
@bLatitude DECIMAL(9, 6),
@bLongitude DECIMAL(9, 6)
)
RETURNS DECIMAL(16, 6)
例子:
SELECT dbo.Haversine(0.0, 0.0, 0.0, 0.0)
我想同时获得 StopName 以及 Haversine 函数的结果。我将如何有效地做到这一点?