2013-10-26 53 views
-2

我不想使用IN操作符下面查询写:如何在不使用IN运算符的情况下编写查询?

select q_event_seq, rownum..... 
from notify_request 
where q_event_seq in (
    select q_event_seq 
    FROM ( 
     SELECT q_event_seq, DENSE_RANK() over (order by q_start, contact_gid) digest_rank 
     FROM NOTIFY_REQUEST 
     WHERE q_state = 'QUEUED' 
     order by digest_rank 
     ) 
    where digest_rank <= 10 
    ) 
ORDER BY q_start, contact_gid ; 
+1

这是作业还是拼图? – Bohemian

回答

3

是的,你可以把你的条件,一个SELECT DISTINCT q_event_seq ...然后再加入它。

但是,你为什么?这就是数据库正在做的事情。删除IN的原理是什么?

另外,你为什么给索引提示?这是非常必要的(这当然不是问一个问题)。整个问题试图猜测查询优化器。

相关问题