HAVING上的列名无效

时间:2015-11-30 20:58:39

标签: sql sql-server

您好我有这个问题:

SELECT TOP 100 * ,(3960 * ACOS(cos(radians(39.6128751)) * 
  COS(radians(Lat)) * COS(radians(Lng) - radians(-84.2489525)) + 
  SIN(radians(39.6128751)) * sin(radians(Lat)))) AS Distance
  FROM [Table]  
  HAVING Distance < 50
  ORDER BY Distance DESC

查询显示的距离小于50.但是我在HAVING语句中得到一个无效的列名'Distance'。对不起,我是新的SQL。

1 个答案:

答案 0 :(得分:0)

SELECT TOP 100 * ,(3960 * ACOS(cos(radians(39.6128751)) * 
  COS(radians(Lat)) * COS(radians(Lng) - radians(-84.2489525)) + 
  SIN(radians(39.6128751)) * sin(radians(Lat)))) AS Distance
  FROM [Table]  
  HAVING (3960 * ACOS(cos(radians(39.6128751)) * 
  COS(radians(Lat)) * COS(radians(Lng) - radians(-84.2489525)) + 
  SIN(radians(39.6128751)) * sin(radians(Lat)))) < 50
  ORDER BY Distance DESC