用case when 得到的列,提示列名无效
SELECT HS_ID, HS_provinceid, HS_cityid, HS_districtid, HS_liveCriclesid, HS_subzoneid, HS_address, HS_issueType, HS_houseType,HS_bedroom,HS_livingroom,HS_toilet,HS_areas,HS_price, HS_priceUnit,HS_addTime,HS_commend,HS_shareType,HS_money=
(
case HS_priceUnit
when 1 then HS_Price
when 2 then HS_Price*HS_areas/10000
when 3 then HS_price
when 4 then HS_Price*HS_areas
end)
FROM syinfo_HouseSource where HS_money between 1 and 10000
------解决方案----------------------试试
select *
from(
SELECT HS_ID, HS_provinceid, HS_cityid, HS_districtid, HS_liveCriclesid, HS_subzoneid, HS_address, HS_issueType, HS_houseType,HS_bedroom,HS_livingroom,HS_toilet,HS_areas,HS_price, HS_priceUnit,HS_addTime,HS_commend,HS_shareType,HS_money=
(
case HS_priceUnit
when 1 then HS_Price
when 2 then HS_Price*HS_areas/10000
when 3 then HS_price
when 4 then HS_Price*HS_areas
end)
FROM syinfo_HouseSource) a
where HS_money between 1 and 10000
或者
SELECT HS_ID, HS_provinceid, HS_cityid, HS_districtid, HS_liveCriclesid, HS_subzoneid, HS_address, HS_issueType, HS_houseType,HS_bedroom,HS_livingroom,HS_toilet,HS_areas,HS_price, HS_priceUnit,HS_addTime,HS_commend,HS_shareType,HS_money=
(
case HS_priceUnit
when 1 then HS_Price
when 2 then HS_Price*HS_areas/10000
when 3 then HS_price
when 4 then HS_Price*HS_areas
end)
FROM syinfo_HouseSource where
(
case HS_priceUnit
when 1 then HS_Price
when 2 then HS_Price*HS_areas/10000
when 3 then HS_price
when 4 then HS_Price*HS_areas
end)
between 1 and 10000