1

我有一个包含两个表的数据库:

-October2012_ID其中包含两列:

a) OldId
b) NewId

-BNP其中还包含两列:

a)BankId
b)OrbId

BNP如果这些值在OldId位于表中的列中可用,我需要通过替换包含在两列中的值来更新表October2012_ID。如果是这种情况,我需要BNP通过 的值更新列NewId

所以:

Update BNP
SET BNP.**BankId**=October2012_Id.NewId
where BNP.**BankId**=October2012_Id.OldId and October2012_Id.**BankId** is not null

并且:

Update BNP
SET BNP.**OrbId**=October2012_Id.NewId
where BNP.**OrbId**=October2012_Id.OldId and October2012_Id.**OrbId** is not null

我是 SQL 的菜鸟,你能帮帮我吗?

4

2 回答 2

1
UPDATE BNP
   SET BNP.OrbId=October2012_Id.NewId
  FROM October2012_Id
  JOIN BNP.OrbId=October2012_Id.OldId  --The default JOIN is INNER. Just shorthand for INNER JOIN
 WHERE October2012_Id.OrbId IS NOT NULL

您只需要指定您希望使用FROM子句的值的表并指定JOIN要更新的表。

于 2012-10-10T10:36:10.030 回答
1

您可以尝试or在您的条件之间添加:

Update BNP
SET BNP.BankId=October2012_Id.NewId
from October2012_Id
where 
  (BNP.BankId=October2012_Id.OldId and October2012_Id.BankId is not null)
  or
  (BNP.OrbId=October2012_Id.OldId and October2012_Id.OrbId is not null)
于 2012-10-10T10:42:58.297 回答