1、创建表并插入数据
2、查询其中不连续的NO号
或者
create table lag_use(no number);
insert into lag_use values (1);
insert into lag_use values (2);
insert into lag_use values (3);
insert into lag_use values (5);
insert into lag_use values (6);
insert into lag_use values (8);
insert into lag_use values (12);
insert into lag_use values (13);
insert into lag_use values (25);
insert into lag_use values (36);2、查询其中不连续的NO号
SELECT * FROM
(SELECT LAG(NO, 1) OVER(ORDER BY NO) + 1 AS START_NO, NO - 1
FROM LAG_USE) NB
WHERE NB.NO <> NB.START_NO; 或者
with tmp as(
select rownum r from dual connect by level <= (select max(no) from lag_use))
select min(r), max(r) from(
select no,r,sum(decode(no,null,0,1)) over(order by r) v
from tmp a,lag_use b
where a.r = b.no(+))
where no is null
group by v;
本文介绍了一种使用SQL查询表中非连续编号的方法。通过创建一个包含多个编号的示例表,并利用LAG()窗口函数来找出编号不连续的地方。此外,还提供了一个使用WITH语句的替代方案。
622

被折叠的 条评论
为什么被折叠?



