2016-11-08 108 views
0

我有一個關於我的sql查詢的問題。我需要排除所有具有值'f'的行。如何從具有特定值的sql中排除記錄

我曾嘗試做

SELECT * FROM table WHERE type NOT IN ('f') 

但這似乎並不奏效。任何幫助,將不勝感激

編輯:對不起不夠明確,

我的問題是,那裏有這樣的

name type 

test1 f 
test1 l 

多行如果我想使用此查詢它仍然會回到我TEST1但我想要的是它返回NULL。這可以做到嗎?

+0

爲了完整,您能指定一對樣本記錄並指出結果中應包含/排除哪些記錄? – David

+1

您正在使用哪種RDBMS? – sagi

+0

'isnt working'是什麼意思請閱讀[** How-to-Ask **](http://stackoverflow.com/help/how-to-ask) \t \t這裏是[* * * START **](http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/),瞭解如何提高您的問題質量並獲得更好的答案。 –

回答

3

你顯然希望看到的行沒有其他行相同名稱的值是f

select t1.* 
from the_table t1 
where not exists (select * 
        from the_table t2 
        where t1.name = t2.name 
        and t2.type = 'f'); 

如果沒有這樣的行存在的查詢不會返回null它根本不會返回任何行。

0

使用HAVING子句:

SELECT s.name 
FROM YourTable s 
GROUP BY s.name 
HAVING COUNT(CASE WHEN s.type = 'f' THEN 1 END) = 0 
相關問題