95

使用 SqlServer,并尝试从同一个表中更新行。我想使用表别名来提高可读性。这是我目前的做法:

UPDATE ra 
SET ra.ItemValue = rb.ItemValue
FROM dbo.Rates ra, dbo.Rates rb
WHERE ra.ResourceID = rb.ResourceID
AND ra.PriceSched = 't8'
AND rb.PriceSched = 't9'

有没有更简单/更好的方法?

4

2 回答 2

44
UPDATE ra 
   SET ra.ItemValue = rb.ItemValue
  FROM dbo.Rates ra
 INNER JOIN dbo.Rates rb
         ON ra.ResourceID = rb.ResourceID
WHERE ra.PriceSched = 't8'
  AND rb.PriceSched = 't9';

这可能有助于提高性能。

于 2009-05-07T17:29:19.027 回答
1

T-SQL(Microsoft SQL) 中更新查询中的表别名。对于 MS SQL Server 2008 R2,它工作得很好

UPDATE A_GeneralLedger  set ScheduleId=g.ScheduleId
from A_GeneralLedger l inner join A_AcGroup g on g.ACGroupID=l.AccountGroupID
于 2013-01-19T10:29:16.500 回答