Oracle Rownum, получить n-й ряд - PullRequest
0 голосов
/ 21 января 2020

Как получить n-ю (2-ю) строку из списка результатов, и если 2-я строка (столбец 2) - это определенное число, ничего не печатать.

Select * from
(select s.id_numeric,
         s.client_id,
         s.depth,
         s.fas_sample_type,
         s.profile_number,
         Count(1) over() as cnt
  from   sample s 
  where  s.client_id = upper ('128336A') 
  and    s.id_numeric between 12325 and 12327
  and    s.fas_sample_type = sample_pkg.get_soil_sample
  and    s.status = sample_pkg.get_authorised_sample
  and    s.flg_released = constant_pkg.get_true)
Where cnt > 1

1 Ответ

0 голосов
/ 21 января 2020

Хм, я думал, что это будет легко, но мне понадобилось около 10 минут, чтобы решить.

select * 
  from (select rownum row_num, 
               /* here_goes_rest_of_subquery */ 
         fetch first 2 rows only) sub_q
  where ...
  order by sub_q.row_num desc
  fetch first 1 row only;

Обратите внимание, что в вашем подзапросе нет части "order by", и вам нужна n-ая строка результата. Таким образом, вы можете получить разные результаты на разных клиентах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...