【问题标题】:Update the table with 2 column values使用 2 列值更新表
【发布时间】:2012-03-08 18:47:15
【问题描述】:

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

查询

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

上面的查询显示错误为

子查询返回超过 1 个值。当子查询跟随 =、!=、、>= 或子查询用作表达式时,这是不允许的。 声明已终止。

如何更改我的查询

【问题讨论】:

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


    【解决方案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 
    

    【讨论】:

      【解决方案2】:

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

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

      是真的。你需要看看什么时候有可能,必要时重新考虑你的策略。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-07-15
        • 2020-08-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多