假设我有以下语句,内部联接的结果为3行,其中a.Id = b.Id,但是3行中的每行都有不同的b.Value。由于仅要更新tableA中的一行,因此在更新中使用了3个值中的哪一个?
UPDATE a
SET a.Value = b.Value
FROM tableA AS a
INNER JOIN tableB as b
ON a.Id = b.Id
最佳答案
我认为这种情况没有规则,您不能依赖特定的结果。
如果您要排在特定行之后,例如说最后一行,则可以使用apply
,例如:
UPDATE a
SET a.Value = b.Value
FROM tableA AS a
CROSS APPLY
(
select top 1 *
from tableB as b
where b.id = a.id
order by
DateColumn desc
) as b
关于sql - 更新并联接多行,使用哪一行的值?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/9502449/