2015-05-20 32 views
0
UPDATE Table1 
    SET [Marks] = 
     (
     SELECT 
     CASE STATEMENTS 
     FROM Table2 T2 
    WHERE Table1.ID = T2.ID)    
     ) 

上面的UPDATE语句工作正常,但是如果ID不匹配,那么它会为'Marks'插入NULL值。 但是,如果Table1和Table2 ID不匹配,我想保留表1中标记的原始值。 如何在我的代码中实现该功能。Sql UPATE在WHERE子句中有多个条件

我也尝试使用WHERE EXISTS但仍然没有运气。我不知道它的确切用途是什么。

任何帮助非常感谢。

回答

0
UPDATE Table1 
SET [Marks] = 
     (
     SELECT 
      CASE STATEMENTS 
     FROM Table2 T2 
     WHERE Table1.ID = T2.ID)    
    ) 
WHERE id IN (SELECT id FROM table2) 
+0

@ Yasser El-Alaily:哇!它是完美的。你是明星。非常感谢。 – NatureTech

+0

谢谢@Marc_s。那正是我所做的。 – NatureTech