2016-09-23 4 views
0

ich eine Abfrage leite, wo die Ergebnisse wie folgt aussehen:Filterergebnisse über mehrere Spalten

  JOHN JILL GARY JANE JEFF MICK 
RED  | NOPE | OK | OK | OK | OK | OK | 
ORANGE | OK | OK | OK | OK | OK | OK | 
YELLOW | OK | OK | NOPE | OK | NOPE | OK | 
GREEN | OK | OK | OK | OK | OK | OK | 
BLUE | OK | OK | OK | OK | OK | OK | 
INDIGO | OK | NOPE | OK | OK | OK | OK | 
VIOLET | OK | OK | OK | OK | OK | NOPE | 

Ich möchte die Datensätze filtern, wo alle Spalten in Ordnung sind. Ich möchte nur Ergebnisse sehen, bei denen eine oder mehrere der Spalten ein NOPE-Ergebnis enthalten.

Ich habe viele verschiedene Variationen ausprobiert, wo diese <> zu diesem oder jenem = das und ich gebe auf, ich brauche Hilfe.

+0

Nicht klar auf Frage, was Sie versuchen zu erreichen? Fehle ich etwas? –

+0

Ich war auf der Suche nach einer Möglichkeit, die Ergebnisse zu filtern, also Orange, Grün, Blau wurden weggelassen, weil alle Spalten OK waren. Ich wollte nur die Aufzeichnungen sehen, in denen 1 oder mehr NOPE's existierten. – bteague

Antwort

1

unter der Annahme, dass die Anzahl der Spalten konstant ist dann Eine where-Klausel, die darauf achtet, wo alles in Ordnung ist mit einem nicht Flip sollte es tun.

WHERE (NOT ((JOHN = 'OK') AND (JILL = 'OK') AND (GARY = 'OK') AND (JANE = 'OK') AND (JEFF= 'OK') AND (MICK = 'OK'))) 
+0

Ich mag diese Antwort besser, nur weil sie universell hilfreich sein wird. Die Antwort, die ich lieferte, war sehr spezifisch für diesen Fall. Ich mag das. Danke, David. – bteague

0

Vielleicht eine WHERE-Klausel, die wie folgt aussieht:

WHERE JOHN = 'NOPE' 
    OR JILL = 'NOPE' 
    OR GARY = 'NOPE' 
    OR JANE = 'NOPE' 
    OR JEFF = 'NOPE' 
    OR MICK = 'NOPE' 
+0

Vielen Dank für den Versuch. Soweit ich weiß, könnte dies funktionieren, wenn die Abfrageergebnisse so einfach wie 'NOPE' oder 'OK' sind. In Wirklichkeit kann "NOPE" eine von Dutzenden von Dingen sein. Und diese Dutzende von Dingen werden sich ständig weiterentwickeln und solange es technisch möglich ist, ist es nicht möglich, die Abfrage auf diese Weise zu erstellen. – bteague

+0

@bteague Wenn Sie mehrere Dinge haben, verwenden Sie WHERE ColumnName IN ('value1', 'value2') oder INNER JOIN zu einer temporären Tabelle von Variablen. – scsimon

2

WO JOHN + JILL + GARY + JANE + JEFF + MICK <> 'okokokokokok'