2016-09-21 93 views
-1

例如,我有一個貨物裝運表,並在該表中有兩列;起源和目的地。我該如何做到這一點,以便我的select語句中得到的結果將被排除,如果這些列中的值相同?SQL - 如果排除表中的結果(如果它們具有兩列中的相同數據)

更具體地說,我可以有一行,其中Origin和Destination等於'Chicago',我將如何排除該行,但不排除具有Origin Destination作爲Chicago的行。

+0

對不起,我應該補充說,它應該只對特定的始發地和目的地,因此,如果他們都是例如'達拉斯'我想要顯示,但如果他們都'芝加哥'我不希望這顯示' –

回答

6
SELECT 
    * 
FROM 
    Cargo 
WHERE 
    Origin != Destination 
+0

這工作完全謝謝你!你知道如何排除來源和目的地的特定名稱,以便所有其他重複項都可以被允許嗎? –

+0

你能澄清你最後一個問題嗎?你問如何排除一個特定的值,如果它顯示爲起源和目的地,但允許其他重複值?如果是這樣,你可以使用'SELECT * FROM Cargo WHERE Origin <>'val'OR Destination <>'val'' –

+0

這正是我所要求的,對於混淆抱歉。 –

2

您可以使用WHERE子句排除其中起點和終點都等於使用

SELECT * 
    FROM SHIPMENTS 
WHERE ORIGIN <> 'val' 
     OR DESTINATION <> 'val' 

,或者一個特定值的所有行,如果你想排除其中起點和終點都是項目在值列表中,可以使用

SELECT * 
    FROM SHIPMENTS 
WHERE ORIGIN <> DESTINATION 
     OR ORIGIN NOT IN ('list', 'of', 'vals') 
0

如果您只是需要比較兩列,請使用不等於運算符=!或<>在您的where子句中,具體取決於您的需求。

選擇... 原屬!=目標

希望它能幫助。

這裏有一個關於這個運營商後Not equal <> != operator on NULL

0

試試這個:在變化的要求

SELECT * 
FROM SHIPMENTS 
WHERE ORIGIN <> 'Chicago' AND DESTINATION <> 'Chicago' 
+0

謝謝,我會嘗試這個!如果我使用類似條款來排除以相同城市名稱開頭的結果,這也可以起作用嗎?例如,如果我添加並且 (OriginName不像'Chicago%'和DestName不像'Chicago%') –

+0

當然它必須解決那個和其他必需的條件。 – Susang

相關問題