2012-09-27 33 views
0

我需要一個查詢,但我有一個標準要看情況。舉個例子:如果別人在where子句甲骨文

讓我們有一個表名爲table1有名爲列列1和 表2已列名爲COLUMN2

在where子句中,我需要列1和列2到加入這個表1與表2的查詢列。但是,我需要這樣做

if 
    column1 = 'x' then my criteria must be column1 = column2 
else 
    column1 != 'x' 

我怎麼能在Oracle中寫這個where子句?

謝謝您的回答。

+1

什麼應該發生,如果column1爲NULL? –

+0

由於設計原因,這不能爲空。 – user1474111

回答

2

只需使用OR條件像這樣的:

WHERE (Column1 <> 'x' OR column1 = column2) 

(這是正常的SQL語法,不知道是否有在甲骨文的語法任何變化,但你可以試試這個邏輯。)

編輯:(From OP's comment in my answer)

你可以做這樣的事情之一:

WHERE (column2 != (Select col from table3) OR column1 = 'x') 

或者

WHERE (column2 != (Select col from table3) OR column1 = (Select col from table3)) 
+0

但有一點。 'x'來自內部SQL查詢。在這個時候,它使用起來很困惑。其實我的情況是這樣的 (從表3中選擇col)='x'然後column1 ='x'else column2!='x' 在這段時間它對我來說有點難了。 – user1474111

+4

@ user1474111 - 未來,請不要浪費時間和一半的要求。從關閉中向我們提供您的問題中的所有相關信息。 – APC

2

試試這個

WHERE (Column1 != 'x' OR (Column1 = 'x' AND column1 = column2))