2014-03-06 112 views
0

我有我想要查找哪個不在表中的國家列表。可以說我的名單是這樣的:('希臘','智利','夏威夷'),並且在表中已經存在希臘和智利,而不存在夏威夷。Sql Server 2012:如何找到不在列表中的元素

我如何使查詢找到我提供的列表中缺少的內容?

在此先感謝。

回答

0

一種方法是將您的標準放在另一個表中,然後使用外連接。例如:

DECLARE @Test as table(Cnty varchar(50)) 

insert into @Test(Cnty) values ('Greece') 
insert into @Test(Cnty) values ('Chile') 


SELECT tmp2.Cntry FROM (
SELECT * FROM @Test t 
    RIGHT JOIN (SELECT 'Greece' Cntry UNION ALL 
      SELECT 'Chile' UNION ALL 
      SELECT 'Hawaii') Tmp 
     ON t.Cnty = tmp.Cntry 
) tmp2 
WHERE cnty is null 
+0

謝謝,但我的問題是,不僅有3個元素在列表中,所以我不能一一插入。 – CodeArtist

+0

有幾種方法可以構建您的表格。例如,我創建了一個表值函數,將分隔字符串轉換爲值表。如果這仍然行不通,請提供更多關於您的要求的信息。 – Steve

相關問題