我有两列Page_from
和Page_to
。记录排序后,它们显示为...
Page_from Page_to
1 4
5 7
9 11
这里缺少第8页。
我想找到缺少的页码,因此我必须能够将上一行中的
Page_to
值与当前行中的Page_from
进行比较。 最佳答案
您可以通过找到先前的记录,并比较先前的page_to
和当前的page_from
来找到缺失序列的开始。如果存在间隙,则可以同时获得第一页和最后一页。
select tprev.page_to + 1 as missing_page_from, t.page_from - 1 as missing_page_to
from (select t.*,
(select tprev.page_to
from t tprev
where tprev.page_from < t.page_from
limit 1
) as prev_to
from t
) t
where prev_to is not null and
prev_to <> t.page_from - 1;