2014-07-02 56 views
1

我需要選擇沒有任何行滿足特定要求的名稱條目。這可以用下面的表格來描述:SQL select某些要求永遠不會滿足的名稱條目

Name  Number ID 
A   1   2 
A   2   2  
B   1   2 
B   2   3 
C   3   3  

要求是Number = ID。對於名字B這是從來沒有的情況下,所以我想返回名稱B.

Name  Number ID 
A   1   2 
A   2   2  <---- fulfills requirement for A 
B   1   2 
B   2   3 
C   3   3  <---- fulfills requirement for C 

這是可能的SQL?

回答

1

您可以使用NOT EXISTS子句

select * from Table1 t1 
where not exists (select null 
        from Table1 
        where t1.Name = Name 
        and Number = Id) 

如果你只是想不符合要求的名字,只是改變了選擇

select distinct t1.Name 

看到SqlFiddle有兩個版本。

+0

非常感謝。關鍵的建議是使用t1說明符! – user3726374

1

試試這個

Select Name 
from table 
where name not in (Select distinct name from table where number = id) 
+0

也完美的作品! – user3726374