sql查询中where子句出错

sql查询中where子句出错,sql,sql-server-2005,Sql,Sql Server 2005,当我执行以下sql查询时,会显示零行,我已经调用了带有null值的距离,当我执行此查询时,距离feild将用一些数值填充,但是如果我指定条件距离您会在前面得到答案 [ 不能在where子句中引用字段距离,必须使用: ( 6371 * ACOS( COS( (12.925432/57.2958) ) * COS( (Lat/57.2958) ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) + SIN( 12.925432/57.2958

当我执行以下sql查询时,会显示零行,我已经调用了带有null值的距离,当我执行此查询时,距离feild将用一些数值填充,但是如果我指定条件距离您会在前面得到答案

[

不能在where子句中引用字段距离,必须使用:

( 6371 * ACOS( COS( (12.925432/57.2958) ) 
* COS(  (Lat/57.2958)  ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) 
+ SIN( 12.925432/57.2958 ) * SIN(  Lat/57.2958  ) ) ) < 3
(6371*ACOS(COS((12.925432/57.2958))
*COS((Lat/57.2958))*COS((Lng/57.2958)-(77.5940171/57.2958))
+SIN(12.925432/57.2958)*SIN(Lat/57.2958))<3

通过在sql中创建视图,可以成功执行此特定查询。 创建视图业务作为选择Id、名称1、ZipCode、街道名称、街道编号、状态1、Lat、Lng、关键字,(6371*ACOS(COS((12.925432/57.2958))*COS((Lat/57.2958))*COS((Lng/57.2958)-(77.5940171/57.2958))+SIN(12.925432/57.2958)*SIN(Lat/57.2958)),作为与业务的距离; 此特定视图包含带有距离字段的结果,然后我们可以查询视图业务,以根据输入的距离值操作结果
选择*from business where(distance)接受对您之前问题的一些回答,您将赢得声誉!感谢您的回复,我已按照您的建议对我的查询进行了更改,但结果为空。我无法跟踪问题的确切位置。他们是否有其他解决方法。
( 6371 * ACOS( COS( (12.925432/57.2958) ) 
* COS(  (Lat/57.2958)  ) * COS( ( Lng/57.2958 ) - (77.5940171/57.2958) ) 
+ SIN( 12.925432/57.2958 ) * SIN(  Lat/57.2958  ) ) ) < 3