使用更新的字段更新另一个字段

时间:2015-02-17 16:52:13

标签: sql sql-server

我只想做一次更新查询,但我遇到了一些麻烦。首先,这是我尝试的:

UPDATE Table set value1 = val, value4  = value2 - (value1 + value3) WHERE Condition

我的问题是,value4似乎使用"未更新"价值1。最后我使用了2个查询,但我想知道是否有办法在一个查询中执行此操作。

提前致谢(对不起我的英语,我是法国学生)

编辑:更多信息,我使用oracle数据库,我的应用程序使用symfony和doctrine查询。谢谢大家,我会尝试你的解决方案。

2 个答案:

答案 0 :(得分:1)

可能是特定于数据库的,但在SQL Server中,您可以使用变量在同一UPDATE语句中的后续字段中提供值:

DECLARE @value1 AS INT
UPDATE Table 
SET @value1 = value1 = val
  , value4  = value2 - (@value1 + value3) 
WHERE Condition

另外......在您的示例中,您可以再次引用val

UPDATE Table 
SET value1 = val
  , value4  = value2 - (val + value3) 
WHERE Condition

答案 1 :(得分:0)

是。您需要2个Update语句,或者需要在查询中使用新值:

UPDATE Table
     SET value1 = @val,
         value 4 = value2 - (@val - value3)
WHERE ...
相关问题