如何在 SQL Server 的 where 子句中使用别名列名 [英] How to use alias column name in where clause in SQL Server
本文介绍了如何在 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屋!
查看全文