2016-09-23 116 views
0

篩選結果我運行一個查詢,其中的結果是這個樣子:跨越多個列

  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 | 

我想篩選出所有列都是OK的記錄。我只希望看到一個或多個列包含NOPE結果的結果。

我已經嘗試了很多不同的變化,在這個<>這個或那個=這個,我放棄了,我需要幫助。

+0

不明確的問題,你想達到什麼?我錯過了什麼嗎? –

+0

我正在尋找一種方法來過濾結果,所以橙色,綠色和藍色都被省略了,因爲所有列都正常。我只想看看存在1個或更多NOPE的記錄。 – bteague

回答

1

假定列的數目是恆定的,然後在where子句中尋找哪裏都可以,而不是翻轉應該這樣做。

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

我更喜歡這個答案,只是因爲它會是普遍有用的。我提供的答案對這種情況非常具體。我喜歡。謝謝,大衛。 – bteague

0

也許WHERE子句,看起來像這樣:

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

謝謝你的嘗試。據我所知,如果查詢結果像'NOPE'或'OK'一樣簡單,這可能會起作用。事實上,'NOPE'可以是幾十種事物中的一種。而且,這些數十件事情將不斷髮展,儘管在技術上可行,但以這種方式構建查詢是不可行的。 – bteague

+0

@bteague如果你有多個東西使用WHERE ColumnName IN('value1','value2')或INNER JOIN它到一個臨時變量表​​。 – scsimon

2

WHERE JOHN + JILL + GARY +簡+ JEFF + MICK <> 'okokokokokok'