我只想做一次更新查询,但我遇到了一些麻烦。首先,这是我尝试的:
UPDATE Table set value1 = val, value4 = value2 - (value1 + value3) WHERE Condition
我的问题是,value4似乎使用"未更新"价值1。最后我使用了2个查询,但我想知道是否有办法在一个查询中执行此操作。
提前致谢(对不起我的英语,我是法国学生)
编辑:更多信息,我使用oracle数据库,我的应用程序使用symfony和doctrine查询。谢谢大家,我会尝试你的解决方案。
答案 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 ...