if else在Oracle的where子句中

时间:2012-09-27 06:40:00

标签: sql oracle oracle9i

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

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

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

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

如何在Oracle中编写where where子句?

感谢您的回答。

2 个答案:

答案 0 :(得分:2)

只需使用OR这样的条件:

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

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

编辑: (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))

答案 1 :(得分:2)

试试这个

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