Oracle中BETWEEN和IN子句的组合

时间:2013-07-26 02:34:49

标签: sql oracle

    SELECT * FROM emp WHERE emp.id 
(BETWEEN 1000 AND 2000) OR IN ('3000','3001','4000')

如何在Oracle中结合使用BETWEEN和IN子句来编写这种类型的查询?

1 个答案:

答案 0 :(得分:3)

重复列名(并且不要对数字使用字符串):

SELECT *
  FROM emp
 WHERE emp.id BETWEEN 1000 AND 2000 OR emp.id IN (3000, 3001, 4000)

如果还有其他条件,您可能希望将整个OR术语括起来:

SELECT *
  FROM emp
 WHERE (emp.id BETWEEN 1000 AND 2000 OR emp.id IN (3000, 3001, 4000))
   AND ...

此处没有任何特定于Oracle的内容 - 只是一次。您可以将它应用于任何SQL DBMS。