2016-12-14 17 views
0

我有這個疑問:複製行從表一表B如果鍵不存在

INSERT INTO Master (Case) 
SELECT Case 
FROM Extract 
WHERE (NOT Exists (SELECT 1 
        FROM Extract 
        WHERE Master.Case = Extract.Case)) 
GROUP BY Case; 

我有兩個表,碩士及提取物,都有案例作爲自己唯一的密鑰。

我想將所有行從Extract複製到Master,這些行不會出現在Master中,因此任何行中的Case號不在Master中。

希望是有道理的。

當我運行我的查詢它說輸入參數值的Master.Case

我在做什麼錯?

回答

1

嘗試在括號[] [即]中使用列名稱。因爲它的保留字在sql for CASE WHEN中。

  insert into .Master([Case]) 
      select distinct [Case] from Extract where [Case] NOT IN(select [Case] from Master); 

      OR 

      insert into Master([Case]) 
      select distinct [Case] from Extract t1 where NOT EXISTS(select [Case] from Master t2 where t1.[Case]=t2.[Case]); 
0
INSERT INTO [Master] ([Case]) 
SELECT [Case] 
FROM [Extract] 
WHERE NOT Exists (SELECT 1 FROM [Extract] WHERE [dbo].[Master].[Case] = [dbo]. 
[Extract].[Case]) 
GROUP BY [Case] 
+0

謝謝,但我得到這個錯誤:無效使用'。','!'要麼 '()'。在查詢表達式'[Master]。[Case] = [Extract]。[Case'。 – davidjwest

相關問題