不是不可以对数据进行转换一下,比如 convert 或 cast

解决方案 »

  1.   

    确认你的额定速度载重量非字符,如果是就转换一下.另外需要加个ELSEupdate table1
    set 检测费=      CASE 
             WHEN 额定速度 <1 THEN 0
             WHEN 额定速度 >1 and 额定速度 <=1.75 THEN 30
             WHEN 额定速度 >1.75 and  额定速度 <=2.5 then 45
             WHEN 额定速度 >2.5  then 700*0.25
             else 0
          END 
    +
         CASE 
             WHEN 载重量 <1000 THEN 0
             WHEN 载重量 >= 1000 and 载重量 <=2000  THEN 65
             WHEN 载重量 >2000  THEN 75  
             else 0    
          END
      

  2.   

    不行啊!一个CASE可以的,就是两个CASE + 起来就出现错误提示了。
      

  3.   

    我的载重量,额定速度都是decimal数据类型的.
      

  4.   

    额定速度和载重量数据类型问题case语句没问题
      

  5.   

    update table1
    set 检测费=      CASE 
             WHEN 额定速度 <1 THEN 0
             WHEN 额定速度 >=1 and 额定速度 <=1.75 THEN 30     ---这个case少了额定速度=1
             WHEN 额定速度 >1.75 and  额定速度 <=2.5 then 45
             WHEN 额定速度 >2.5  then 700*0.25
          END 
    +
         CASE 
             WHEN 载重量 <1000 THEN 0
             WHEN 载重量 >= 1000 and 载重量 <=2000  THEN 65
             WHEN 载重量 >2000  THEN 75  
          END
      

  6.   

    语法是正确的

    我怎么测都没有报这个错误,即使把decimal 改为varchar
    都没有报这个错误