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

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

4

1 回答 1

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。

于 2013-07-26T02:39:54.807 回答