insert into a (feiyong, feiyong2) values(case when zijin * feilv<5 then 5 else zijin * feilv end,(case when zijin * feilv<5 then 5 else zijin * feilv end)/ 5 )有两个 case when zijin * feilv<5 then 5 else zijin * feilv end 。可以搞成一个么?

解决方案 »

  1.   

            
    ALTER TABLE a ALTER COLUMN feiyong2 AS feiyong/5
            
    INSERT INTO a( feiyong)
    SELECT (CASE WHEN zijin * feilv < 5 THEN 5
                   ELSE zijin * feilv
              END )
            
    计算列?
      

  2.   

    2楼方法好。
    另外楼主你values后面应该有select吧。
    注意:在SELECT后面如果有列别名,只能在SELECT被使用后才能使用。例如:SELECT C1+C2 AS ABC,ABC+C3 AS EFG就是错误的,因为列别名ABC在前面的步骤中根本没有生成;而SELECT C1+C2 AS ABC FROM TABLE ORDER BY ABC就是正确的,因为这时候列别名ABC已经在前面的步骤中生成,因此ORDER BY 可以使用。