从单独的表中的多行更新多个列

时间:2015-03-06 22:56:33

标签: sql sql-update ssms

我正在尝试使用TSQL从我的数据库中的不同表中的多行更新多个列 这是我的更新

UPDATE pm
    SET [COL1] = CASE WHEN p.MID=’Hi’ THEN 1 ELSE [COL1] END,
    SET [COL2] = CASE WHEN p.MID=’Bye’ THEN 1 ELSE [COL2] END
FROM 
    Papers p
    INNER JOIN PaperMeasures pm ON pm.PaperID=p.PaperID

现在Papers表有多行相同的信息 - 除了MID列。一行可以显示“Hi”,而另一行可以读取“Bye”,如此

PaperID | MID | PaperName …
-------------------------------------
1       | Hi  | PaperName1
-------------------------------------
1       | Bye | PaperName1

在我要更新的列中,只有一行具有指定的PaperID,我想更新多列。它应该如下所示

PaperID | Hi | Bye …
-------------------------------------
1       | 1  | 1

到目前为止看起来像上面的例子 - 我的PM表只能检查一个列(Bye)而不是两个(Hi和Bye) 不知道如何让它捕获它们。

0 个答案:

没有答案