简体   繁体   English

如何使用SQL中的另一个表数据更新表的多列?

[英]How to update multiple columns of a table using another tables data in SQL?

I have two tables A , B我有两个表 A , B

A一种

Id  Col1  Col2 Col3
100  Null Null  0

B

Id   Colx   Colz Coly
100  1234    10   4           
100  2345    12   4 

Expected Result:预期结果:

Id  Col1  Col2 Col3
100  1234 2345  4

I am trying to get the Colx of table B into Col1 , Col2 respectively based on Colz however not getting the expected results.我试图让Colx表B的进Col1Col2分别基于Colz但是没有得到预期的结果。 below is my query -以下是我的查询 -

 UPDATE    a
  SET       a.Col1 = CASE WHEN b.Colz=10 THEN b.Colx END,
            a.Col2 = CASE WHEN b.Colz=12 THEN b.Colx END,
            a.Col3=b.Coly
  FROM      A a
            JOIN B b  ON b.Id = a.Id

Please help请帮忙

You can join the same table twice with different conditions like this:您可以使用不同的条件两次加入同一个表,如下所示:

UPDATE    a
  SET       a.Col1 = b1.Colx 
            a.Col2 = b2.Colx,
            a.Col3=b1.Coly
  FROM      A a
  JOIN B b1  ON b1.Id = a.Id AND b1.Colz=10 
  JOIN B b2  ON b2.Id = a.Id AND b2.Colz=12 

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM