oracle8.1.6
select *
from (
select block_id, block_index, display_p as block_display,
lag(block_id)over(order by block_index) prev_block_id,
lag(block_id)over(order by block_index desc) next_block_id
from blocks_blocks
where community_id = :community_id
and block_index <= (
select number_of_blocks from blocks_course_mode where community_id = :community_id )
order by block_index)
where block_index >= :first_block_index
and block_index <= :second_block_index