Обновить несколько столбцов в несколько строк в одном выражении SQL? - PullRequest
0 голосов
/ 27 августа 2010

Этот псевдокод (неточный SQL) показывает, что я хочу сделать.

update tableA (colA, colB, colC, colD)
select b.colA, b.colB, c.colC, c.colD
from tableB b 
    left outer join tableC c 
       on b.id = c.id
    inner join tableA a 
       on c.myNum = a.myNum 
    inner join tableD 
        on a.newId = f.newId
where f.imported = 1

Как я могу сделать это синтаксически правильным способом?

Ответы [ 2 ]

2 голосов
/ 27 августа 2010

Примерно так:

UPDATE TABLE 
SET ...
FROM Table1, Table2 ....
WHERE .....


update tableA 
 Set a.ColA = b.ColA,
     a.Colb = b.ColB,
     a.ColC = c.Colc,
     a.ColD = c.ColD
from tableB b 
 left outer join tableC c 
   on b.id = c.id
 inner join tableA a 
   on c.myNum = a.myNum 
 inner join tableD 
    on a.newId = f.newId
 where f.imported = 1
0 голосов
/ 08 октября 2012
SQL> select *from Dewashish84;

E_ID E_NAME        E_EDUCATION
---------- ------------- ---------------

   100 dewa          MCA
   101 Raj           MSCIT
   145 mohan         BA
   103 ram           MTECH
     5 Sohan         BTECH

SQL>

update harshad set E_NAME= decode(E_EDUCATION,'MCA','dewa','MSCIT','Raj','BA','mohan',
     'MTECH','ram');

 5 rows updated.
...