2013-10-26 2 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

Да, вы можете превратить ваше состояние IN к SELECT DISTINCT q_event_seq ... а затем присоединиться к нему.

Но зачем вам? Это то, что делает база данных в любом случае. В чем причина удаления IN?

Кроме того, почему вы даете указательные подсказки? Это действительно необходимо (это, конечно, не для того, чтобы задать вопрос). Весь вопрос взбудоражен попыткой угадать оптимизатор запросов.

Смежные вопросы