2016-11-08 11 views
0

私のSQLクエリに関する質問があります。値 'f'を持つすべての行を除外する必要があります。特定の値を持つSQLからレコードを除外する方法

私は

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

をやって試してみました。しかし、このdoesntのは、作業をしているようです。すべてのヘルプは

EDITいただければ幸いです:不明であるために申し訳ありませんが、私はそれはまだ私にTEST1を返します。このクエリを使用する場合は、私が持っている

問題は、この

name type 

test1 f 
test1 l 

などのtheresの複数の行ということですしかし私が望むのは、それが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 
関連する問題