如何在 SQL Server 的 where 子句中使用别名列名 [英] How to use alias column name in where clause in SQL Server

查看:44
本文介绍了如何在 SQL Server 的 where 子句中使用别名列名的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当我尝试在 SQL Server 2005 中执行以下代码时出现错误

When I tried to perform the below code in SQL Server 2005 I am getting the error

无效的列名 DistanceFromAddress

Invalid column name DistanceFromAddress

代码:

select 
    SQRT(POWER(cast(Program_Latitude as float) - cast('41.5126237' as float), 2) +   
    POWER(cast(Program_Longitude as float) - cast('-81.6516411' as float), 2)) * 62.1371192 AS DistanceFromAddress 
from 
    tblProgram 
where 
    DistanceFromAddress < 2

我使用 select 语句正确获取值,但是当我尝试检查条件 where DistanceFromAddress <;2 我收到错误.

I am getting the values correctly using the select statement,but when i tried to check the condition where DistanceFromAddress < 2 I am getting the error.

我该如何解决这个问题?

How can I solve this issue?

推荐答案

您不能在 WHERE 子句中使用别名列.您可以尝试使用派生表.也许是这样的(抱歉,没有经过测试):

You can't use aliased columns in a WHERE clause. You can try using a derived table. Perhaps something like this (sorry, not tested):

SELECT * FROM
(SELECT SQRT(POWER(cast(Program_Latitude as float) - cast('41.5126237' as float), 2) +   
 POWER(cast(Program_Longitude as float) - cast('-81.6516411' as float), 2)) * 62.1371192 
 AS DistanceFromAddress from tblProgram) mytable
WHERE DistanceFromAddress < 2

这篇关于如何在 SQL Server 的 where 子句中使用别名列名的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆