我有以下 oracle SQL 及其作品,但所有or
s 都很难看。有没有更简洁的方法来做到这一点?
SELECT * FROM foobar WHERE
(SUBJECT ='STAT' and TERM ='111') or
(SUBJECT ='STAT' and TERM ='222') or
(SUBJECT ='ENGLISH' and TERM ='555') or
(SUBJECT ='COMM' and TERM ='444') or
(SUBJECT ='COMM' and TERM ='333') or
(SUBJECT ='STAT' and TERM ='666')
...
你可能更喜欢这样的东西:
DBFiddle在这里
就纯代码清理而言,以下内容看起来更简洁:
根据应用程序以及重用逻辑的频率,还可能值得设置一个查找表来应用逻辑:
这是另一种方法。使用 where (col1,col2) 可能会导致 Oracle 不使用任何索引,但这看起来像查询的表,因此它可能会更好地工作。一旦您测试了各种版本,您就会知道。
DBFiddle在这里