我想知道是否有办法像这样进行查询(其中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数据库,当我尝试执行它时(显然)会给我一个错误但是我真的喜欢在第二个查询中这样做。
为了让您了解我的情况X
和Y
都是 VARCHAR2 ,我已经尝试了类似
SELECT * FROM table t WHERE (t.X || t.Y) like '%Z%'
但是,不幸的是,它不如第一个准确。
答案 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% )