2016-11-08 5 views
0

Ich habe eine Frage zu meiner SQL-Abfrage. Ich muss alle Zeilen ausschließen, die den Wert "f" enthalten.Wie man einen Datensatz von SQL mit bestimmten Wert ausschließt

Ich habe versucht,

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

Aber dies scheint nicht zu tun zu arbeiten. Jede mögliche Hilfe würde

EDIT geschätzt werden: sorry für unklar ist,

Das Problem, das ich habe ist, dass Theres mehrere Zeilen wie diese

name type 

test1 f 
test1 l 

Wenn ich diese Abfrage verwenden würde wäre es immer noch mich test1 zurückkehren aber was ich will ist, dass es NULL zurückgibt. Kann das gemacht werden?

+0

Der Vollständigkeit halber können Sie einige Beispieldatensätze angeben und angeben, welche in den Ergebnissen enthalten/ausgeschlossen werden sollen? – David

+1

Welche RDBMS verwenden Sie? – sagi

+0

Was bedeutet 'nicht funktioniert 'Bitte lesen Sie [** How-to-Ask **] (http://stackoverflow.com/help/how-to-ask) \t \t Und hier ist ein großartiger Ort, um [* * START **] (http://spaghettidba.com/2015/04/24/how-to-post-at-sql-question-on-a-public-forum/) um zu erfahren, wie Sie Ihre Fragequalität verbessern und erhalten bessere Antworten. –

Antwort

3

Sie wollen offenbar Zeilen sehen, wo keine anderen Zeilen für den gleichen Namen

den Wert f

select t1.* 
from the_table t1 
where not exists (select * 
        from the_table t2 
        where t1.name = t2.name 
        and t2.type = 'f'); 
hat Wenn keine solche Zeile die Abfrage vorhanden ist, wird nicht return null es wird einfach keine Zeilen zurückgeben.

0

Verwenden Sie die HAVING Klausel:

SELECT s.name 
FROM YourTable s 
GROUP BY s.name 
HAVING COUNT(CASE WHEN s.type = 'f' THEN 1 END) = 0 
Verwandte Themen