0

我需要一个查询,但我有一个取决于情况的标准。举个例子 :

让我们有一个名为 table1 的表,其中包含名为 column1 的列,而 table2 具有名为 column2 的列

在 where 子句的查询中,我需要通过 column1 和 column2 列将此 table1 与 table2 连接起来。但是,我需要这样做

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

我如何在 Oracle 中编写这个 where 子句?

谢谢您的回答。

4

2 回答 2

2

只需使用OR这样的条件:

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

(这是正常的SQL语法,不知道Oracle的语法有没有变化,但是你可以试试这个逻辑)

编辑:( 来自OP在我的回答中的评论)

你可以这样做:

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

或者

WHERE (column2 != (Select col from table3) OR column1 = (Select col from table3))
于 2012-09-27T06:40:52.517 回答
2

尝试这个

WHERE (Column1 != 'x' OR (Column1 = 'x' AND column1 = column2))
于 2012-09-27T06:49:56.677 回答