【发布时间】:2011-09-08 03:29:20
【问题描述】:
以下存储过程检索给定纬度和经度的最近的 500 个地址。许多应用程序都使用它,它是有用的查询之一。
是否可以用 Entity-to-SQL 重写?如果是这样,您能否指出正确的方向(我对 Entity-to-SQL 并不陌生)?提前致谢。
DECLARE @CntXAxis FLOAT
DECLARE @CntYAxis FLOAT
DECLARE @CntZAxis FLOAT
SET @CntXAxis = COS(RADIANS(-118.4104684)) * COS(RADIANS(34.1030032))
SET @CntYAxis = COS(RADIANS(-118.4104684)) * SIN(RADIANS(34.1030032))
SET @CntZAxis = SIN(RADIANS(-118.4104684))
SELECT
500 *,
ProxDistance = 3961 * ACOS( dbo.XAxis(LAT, LONG)*@CntXAxis + dbo.YAxis(LAT, LONG)*@CntYAxis + dbo.ZAxis(LAT)*@CntZAxis)
FROM
tbl_ProviderLocation
WHERE
(3961 * ACOS( dbo.XAxis(LAT, LONG)*@CntXAxis + dbo.YAxis(LAT, LONG)*@CntYAxis + dbo.ZAxis(LAT)*@CntZAxis) <= 10)
ORDER BY
ProxDistance ASC
【问题讨论】: