日期:2014-05-18  浏览次数:20484 次

sql case when then查询语句问题
RT,现有一个cityTable
SQL code

select  *,
        case 
           when Province='江苏省' then '华东'
           when Province='浙江省' then '华东'
           when CityName='上海市' then '华东'
           when Province='河南省' then '华中'
           when Province='湖北省' then '华中'
           when Province='湖南省' then '华中'
           when Province='广西省' then '华南'
           when Province='广东省' then '华南'
           when Province='河北省' then '华北'
           when CityName='北京市' then '华北'
           when CityName='天津市' then '华北'
        else '其他' end as 'District'    
        from cityTable


我想做到类似这种查询
SQL code

select * from 
(
    select  *,
        case 
           when Province='江苏省' then '华东'
           when Province='浙江省' then '华东'
           when CityName='上海市' then '华东'
           when Province='河南省' then '华中'
           when Province='湖北省' then '华中'
           when Province='湖南省' then '华中'
           when Province='广西省' then '华南'
           when Province='广东省' then '华南'
           when Province='河北省' then '华北'
           when CityName='北京市' then '华北'
           when CityName='天津市' then '华北'
        else '其他' end as 'District'    
        from cityTable
) where District='华东'


即在已经执行了case后再做查询,查询条件为我case里自定义的District,最后结果应该为
 Province District
  江苏省 华东
  浙江省 华东

------解决方案--------------------
探讨
RT,现有一个cityTable
SQL code

select *,
case
when Province='江苏省' then '华东'
when Province='浙江省' then '华东'
when CityName='上海市' then '华东'
when Provinc……