小编Jen*_*fer的帖子

创建函数时关键字“ CREATE”附近的语法不正确

关于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)

sql-server

5
推荐指数
1
解决办法
6741
查看次数

我怎样才能总是向下舍入到最接近的10整数?

所以,我有一个返回大量记录的查询.在我的结果页面上,我会显示一条行: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(),但这不起作用,它只适用于小数位.

那么,是否有一个冷却功能,或者我缺少一些技术让它工作?我一直无法找到任何搜索,数学不是我的强点:(

非常感谢您的任何建议!

coldfusion logic

4
推荐指数
2
解决办法
1917
查看次数

标签 统计

coldfusion ×1

logic ×1

sql-server ×1