关于MS SQL,我是一个完全的新手,并且在搜索时已在线找到了此代码。似乎可以完全满足我的要求,即根据“纬度”和“纬度”值进行半径搜索。
但是,我不断得到:关键字“ CREATE”附近的语法不正确。,这是代码的第一行。我的数据库是2008 MS SQL
这是代码:
CREATE FUNCTION CalculateDistance
(@Longitude1 Decimal(8,5),
@Latitude1 Decimal(8,5),
@Longitude2 Decimal(8,5),
@Latitude2 Decimal(8,5))
Returns Float
AS BEGIN
Declare @Temp Float
Set @Temp = sin(@Latitude1/57.2957795130823) * sin(@Latitude2/57.2957795130823) + cos(@Latitude1/57.2957795130823) * cos(@Latitude2/57.2957795130823) * cos(@Longitude2/57.2957795130823 - @Longitude1/57.2957795130823)
if @Temp > 1
Set @Temp = 1
Else If @Temp < -1
Set @Temp = -1
Return (3958.75586574 * acos(@Temp) )
End
-- FUNCTION
CREATE FUNCTION LatitudePlusDistance(@StartLatitude Float, @Distance Float) Returns Float
AS BEGIN
Return (Select @StartLatitude + …Run Code Online (Sandbox Code Playgroud) 所以,我有一个返回大量记录的查询.在我的结果页面上,我会显示一条行:30条以上结果中的1到10条结果如下所示.
这样做的30+号码:
<!--- round to the nearest ten --->
<cfset totalfoundRounded = Round(myquery.recordcount/ 10) * 10>
Run Code Online (Sandbox Code Playgroud)
如果我的记录数量是例如34或更少,这很有用.或者24或更少,基本上一旦超过5,我的代码就会完成.因此,即使只有18条记录,它也会发现20多条记录.
我一直在摸索如何使这个逻辑工作,所以它总是向下舍入到最接近的10,即使它是18或19.
我尝试使用int(),但这不起作用,它只适用于小数位.
那么,是否有一个冷却功能,或者我缺少一些技术让它工作?我一直无法找到任何搜索,数学不是我的强点:(
非常感谢您的任何建议!