下面d6+access里的sql语句用以实现sqlserver中的存储过程的case when ....then的功能(access不支持case语句),但运行时却提示说表达式过于复杂,怎么把这个句子简化啊或有没有别的方法解决啊?大家给个建议也行,我都会拿分招待你。
update t_dabiao set st_50_df=iif(st_50<=6.30,iif(st_50>0,100,0),iif(st_50<=6.40,95,iif(st_50<=6.50,90,
iif(st_50<=6.60,85,iif(st_50<=6.70,80,
iif(st_50<=6.80,75,iif(st_50<=6.90,70,iif(st_50<=7.00,65,iif(st_50<=7.10,60,iif(st_50<=7.20,55,
iif(st_50<=7.30,50,iif(st_50<=7.50,45,iif(st_50<=7.70,40,iif(st_50<=7.90,35,
iif(st_50<=8.10,30,0)))))))))))))));

解决方案 »

  1.   

    可不可以用Case代替?
    case when 表达式 then 操作 end
      

  2.   

    哥们,case语句when then end根本就不行的,符号也没有少的,唉,各位英雄好汉还有其它良策吗?
      

  3.   

    难道就没人知道怎么解决了吗?郁闷ing.......
      

  4.   

    可以将更新分开为多步操作,虽然运行从理论上满一些,但是程序会好的多。不会有太多的BUG。
      每次只更新一个字段,只用一个条件。  不知道这个办法有没有用?
      

  5.   

    水手兄说得有道理,不过我还有十几个这样的句子,每条写太麻烦了,所以还有没有其它的办法?
    waiting....
      

  6.   

    不行的,我以前也想把sqlserver下的语句转到access下,也提示说过于复杂,建议你从 优化和简化表结构,导入临时表等方法考虑把!
      

  7.   

    用access的Select Case语句不就行了!