日期:2014-05-16  浏览次数:21017 次

如何简化sql语句中相同的运算操作
请教,   如下的语句,   有没有办法简化2次计算操作,   如(Val2+Val3)变为1次,在access2000中

UPDATE   Table1   SET   Val1=(Val2+Val3)   WHERE   Val1 <> (Val2+Val3)

这样写是因为要取得修改后的改动的记录数


------解决方案--------------------
UPDATE (SELECT Val1, (Val2+Val3) AS Val4 FROM Table1) SET Val1=Val4 WHERE Val1 <> Val4
在ACCESS2000中没有问题,只不过效率低,

我想知道access能否在sql语句中建立临时变量,因为我以前接触过一种sql大概可以像下面这样
UPDATE Table1 SET Val1=Val4 USING (Val2+Val3) AS Val4 WHERE Val1 <> Val4
JET SQL不支持这种写法
------解决方案--------------------
用子查询确实可以。

但是Access不支持用using 的方式:UPDATE Table1 SET Val1=Val4 USING (Val2+Val3) AS Val4 WHERE Val1 <> Val4