select case f1 when -9999 then 0 else f1 end as f任1,
      f2 when -9999 then 0 else f1 end as f2,-->这个逗号全半角不对
      f3 when -9999 then 0 else f1 end as f3

解决方案 »

  1.   

    感觉楼主,你范了几个错误...select f1,f2,f3 from (   
       select case f1 when -9999 then 0 else f1 end as f任1, --这里的 f任1 笔误了吧
          f2 when -9999 then 0 else f1 end as f2, --烧了case  , 还有一个逗号是全角的
          f3 when -9999 then 0 else f1 end as f3 --少了case
       from mytable
    ) a
      

  2.   

    select f1,f2,f3 from (  select case f1 when -9999 then 0 else f1 end as f1,
         case  f2 when -9999 then 0 else f1 end as f2,
           case f3 when -9999 then 0 else f1 end as f3
       from mytable
    ) a
      

  3.   

    当使用case when 语句时最好将里面的值的类型统一,如下都转成字符:
    select f1,f2,f3 from (
    select case f1 when '-9999' then '0' else f1 end as f1,
          case f2 when '-9999' then '0' else f1 end as f2,
          case f3 when '-9999' then '0' else f1 end as f3
       from mytable) a