Select distinct a.Stcd,b.Stnm, a.ID,a.ParaKind,c.Re,a.ParaValue,a.CollectTime, iif(a.Imported=0,''否'',''是'') as Imported from (T_Data as a '
 + 'left join T_StationMarker as b on a.Stcd=b.Stcd)  inner join T_ParaKind as c on ( a.CollectTime between #%s# and #%s# and c.ParaKind=a.ParaKind ) order by a.CollectTime asc   数据表为sql2005中的表,表中字段imported的类型为int型,运行提示‘=’附近有错误,好像是第一行的等号 ,求解。

解决方案 »

  1.   

    iif是access里面的函数, mssql没有这个的函数,改用case吧
    iif(a.Imported=0,''否'',''是'') as Imported from (T_Data as a '
     + 'left join T_StationMarker as b on a.Stcd=b.Stcd)==>>case when a.Imported=0 then ''否'' else ''是'' end as Imported from ...
    另外去掉红色的括号
      

  2.   

    建议在SQL中执行一下这些语句,就知道那里出错了呀
      

  3.   

    decode是oracle里面的,case of可以
      

  4.   

    iif(a.Imported=0,''否'',''是'') as Imported from 要改,sql没有iif函数这样:
    (case when a.Imported=0 then ''否'' else ''是'' end) as Imported from