簡體   English   中英

SQL中的“無效的列名”錯誤

[英]“Invalid column name” error in SQL

此代碼有什么問題?

我收到此錯誤:

無效的列名“距離”

碼:

SELECT 
    Company.CompanyId as Id,
    ( 6371  * acos( cos( radians(47.8423155) ) * cos( radians( Company.Latitude  ) ) * cos( radians( Company.Longitude  ) - radians(35.232933) ) + sin( radians(47.8423155) ) * sin( radians( Company.Latitude ) ) ) ) AS Distance
FROM 
    Company 
INNER JOIN  
    Product ON Company.CompanyId = Product.CompanyId 
WHERE
    Distance< 5000   
ORDER BY
    Distance

根據您使用的 ,某些RDBMS不允許在whereorder by列中引用列別名。 只需使用實際的列名:

SELECT      Company.CompanyId as Id,
            Company.VisitCount AS myVisitCount 
FROM        Company
INNER JOIN  Product ON  Company.CompanyId = Product.CompanyId 
WHERE       Company.VisitCount < 5000   
ORDER BY    Company.VisitCount

將選擇內容包裝在子選擇內

   select * from(SELECT 
    Company.CompanyId as Id,
    ( 6371  * acos( cos( radians(47.8423155) ) * cos( radians( Company.Latitude  ) ) * cos( radians( Company.Longitude  ) - radians(35.232933) ) + sin( radians(47.8423155) ) * sin( radians( Company.Latitude ) ) ) ) AS Distance
FROM 
    Company 
INNER JOIN  
    Product ON (Company.CompanyId = Product.CompanyId) 
) AS P
WHERE
    P.Distance< 5000   
ORDER BY
    P.Distance;

內部子查詢返回使用別名Distance進行過濾的函數。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM