使用2列值更新表

时间:2012-03-08 10:30:34

标签: sql sql-server sql-server-2000

我想比较两个列值来更新表值。

查询

UPDATE  acc SET slloc =
  (SELECT  Location
    FROM   Duplication$
    WHERE  Duplication$.GROUP1 = acc.grpcd 
         AND acc.ccode = Duplication$.div)

上述查询显示错误为

  

子查询返回的值超过1。当子查询遵循=,!=,<,< =,>,> =或子查询用作表达式时,不允许这样做。       声明已经终止。

如何更改查询

2 个答案:

答案 0 :(得分:1)

只需重写您的UPDATE即可使用JOIN,您可以根据需要更新任意数量的行...

UPDATE a SET slloc = d.Location
FROM acc a
JOIN Duplication$ d ON d.GROUP1 = a.grpcd 
                AND d.div = a.ccode 

答案 1 :(得分:0)

此错误消息表示有多个Location,其中:

Duplication$.GROUP1 = acc.grpcd AND acc.ccode = Duplication$.div

是真的。您需要了解何时可能,并在必要时重新考虑您的策略。