100分 求sql

gxjwqm 2009-12-29 04:42:44
create table lx(id int)
insert into lx
select 1 from dual
union
select 2 from dual
union
select 4 from dual
union
select 7 from dual
union
select 9 from dual
union
select 10 from dual
union
select 12 from dual;

结果把不连续的id 显示格式为:
2 4
4 7
7 9
10 12

...全文
136 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phoenix_99 2009-12-29
  • 打赏
  • 举报
回复
with temp as(
select 1 lx from dual
union
select 2 lx from dual
union
select 4 lx from dual
union
select 7 lx from dual
union
select 9 lx from dual
union
select 10 lx from dual
union
select 12 lx from dual
)
select * from(
select lx,lead(lx) over(order by lx) nextlx from temp
) where lx + 1 != nextlx and nextlx is not null
ojuju10 2009-12-29
  • 打赏
  • 举报
回复

select num,id from
(
select id,nvl(lag(id)over(order by id),id-1) as num from lx a
)
where id-num<>1

lixinbill 2009-12-29
  • 打赏
  • 举报
回复

select * from (
select id as id1,lead(id) over(ORDER BY id) as id2 from lx
) where id1+1!=id2
lixinbill 2009-12-29
  • 打赏
  • 举报
回复
sf先 等哥去给你写

17,086

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧