[英]“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 ,某些RDBMS不允许在where
和order 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.