带有OR子句且只有一个参数的SQL查询

时间:2016-02-05 12:09:25

标签: sql database oracle

我想知道是否有办法像这样进行查询(其中Z是变量)

SELECT * FROM table t WHERE t.X = Z OR t.Y = Z

只写一次Z。更具体地说,我想像这样做同样的查询

SELECT * FROM table t WHERE (t.X OR t.Y) = Z

我正在使用Oracle数据库,当我尝试执行它时(显然)会给我一个错误但是我真的喜欢在第二个查询中这样做。

为了让您了解我的情况XY都是 VARCHAR2 ,我已经尝试了类似

的内容
SELECT * FROM table t WHERE (t.X || t.Y) like '%Z%'

但是,不幸的是,它不如第一个准确。

2 个答案:

答案 0 :(得分:3)

您可以使用in

WHERE Z IN (t.X, t.Y)

列可以在IN列表中,也可以在常量中。

答案 1 :(得分:0)

尝试这样

SELECT * FROM table t WHERE (t.X like %Z% OR t.Y  like %Z% )