|
Запрос с ID следущей строки в текущей
|
|||
---|---|---|---|
#18+
Доброго времени суток. Помогите эфективно составить такой запрос. При первом обращении к записям таблицы, выбирается N-число строк, с определенной сортировкой. Последующие же обращения должны выбирать только строки, с датой измения выше даты первоначальной выборки ( Для этой даты предусмотрен столбец). Чтоб передать выбраные строки в порядке их сортировки, с помощью функции LAG передается ID следущей строки в текущей(не важно: следующей, или предыдущей). Вопрос такой: есть ли возможность передать ID следущей/предыдущей строки, при повторном запросе (где выбираются строки только с датой выше)? Проблема в том, что при условии выборки строк с датой выше, строки, с датой ниже не попадают в условия отбора. А, функция LAG вернет ID следущей строки из текущих условий отбора. Что нарушит сортировку в общем списке. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 20:10 |
|
Запрос с ID следущей строки в текущей
|
|||
---|---|---|---|
#18+
Предоставление примера исходных данных в формате with, примера запроса, увеличит кол-во желающих помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 20:36 |
|
Запрос с ID следущей строки в текущей
|
|||
---|---|---|---|
#18+
dmdmdm, create table DEBUG ( DEBUG_id VARCHAR2(4) not null, DEBUG_name VARCHAR2(30) not null, date_update DATE default CURRENT_DATE not null ); alter table DEBUG add constraint K_DEBUG primary key (DEBUG_id); begin for c in 1001..1020 loop insert into debug(debug_id, debug_name) values(c, 'debug_name'||c); commit; end loop; end; select t.debug_id, t.debug_name, LEAD(t.debug_id) over (ORDER BY t.debug_name desc) AS prev_id from DEBUG t order by t.debug_name; 1020 debug_name1020 1019 1019 debug_name1019 1018 1018 debug_name1018 1017 1017 debug_name1017 1016 1016 debug_name1016 1015 1015 debug_name1015 1014 1014 debug_name1014 1013 1013 debug_name1013 1012 1012 debug_name1012 1011 1011 debug_name1011 1010 1010 debug_name1010 1009 1009 debug_name1009 1008 1008 debug_name1008 1007 1007 debug_name1007 1006 1006 debug_name1006 1005 1005 debug_name1005 1004 1004 debug_name1004 1003 1003 debug_name1003 1002 1002 debug_name1002 1001 1001 debug_name1001 update DEBUG t set t.debug_name = t.debug_name, t.date_update = CURRENT_DATE where t.debug_id > 1015; commit; select t.debug_id, t.debug_name, LEAD(t.debug_id) over (ORDER BY t.debug_name desc) AS prev_id from DEBUG t order by t.debug_name desc; 1020 debug_name1020 1019 1019 debug_name1019 1018 1018 debug_name1018 1017 1017 debug_name1017 1016 1016 debug_name1016 1015 1015 debug_name1015 1014 1014 debug_name1014 1013 1013 debug_name1013 1012 1012 debug_name1012 1011 1011 debug_name1011 1010 1010 debug_name1010 1009 1009 debug_name1009 1008 1008 debug_name1008 1007 1007 debug_name1007 1006 1006 debug_name1006 1005 1005 debug_name1005 1004 1004 debug_name1004 1003 1003 debug_name1003 1002 1002 debug_name1002 1001 1001 debug_name1001 select t.debug_id, t.debug_name, LEAD(t.debug_id) over (ORDER BY t.debug_name desc) AS prev_id from DEBUG t where t.date_update > (select tt.date_update from DEBUG tt where tt.debug_id = 1001) order by t.debug_name desc; 1020 debug_name1020 1019 1019 debug_name1019 1018 1018 debug_name1018 1017 1017 debug_name1017 1016 1016 debug_name1016 ____ -- тут должно быть '1015' ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 21:06 |
|
Запрос с ID следущей строки в текущей
|
|||
---|---|---|---|
#18+
Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28.
SY. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 21:59 |
|
Запрос с ID следущей строки в текущей
|
|||
---|---|---|---|
#18+
Lemkoleg, Для оформления кода используйте, пожалуйста, тэг SRC. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.02.2022, 22:07 |
|
|
start [/forum/topic.php?fid=52&tid=1879535]: |
0ms |
get settings: |
18ms |
get forum list: |
6ms |
check forum access: |
1ms |
check topic access: |
1ms |
track hit: |
33ms |
get topic data: |
5ms |
get forum data: |
1ms |
get page messages: |
132ms |
get tp. blocked users: |
1ms |
others: | 364ms |
total: | 562ms |
0 / 0 |