一条SQL语句

Lovely_baby 2009-04-20 01:05:38
表(IDTable),只存在ID一列,现有数据(1, 2, 5, 7)
用一条SQL语句,查找断层(3,6)
...全文
130 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
ilovey4 2009-12-28
  • 打赏
  • 举报
回复
博大精深
sky_too_sky 2009-12-25
  • 打赏
  • 举报
回复
存储过程.我都快晕死了
LONGZHEZHILONG 2009-12-16
  • 打赏
  • 举报
回复
不错
a15208312800 2009-12-03
  • 打赏
  • 举报
回复
有意思
shuxuzui 2009-11-30
  • 打赏
  • 举报
回复

没看懂!
wangying110166 2009-11-27
  • 打赏
  • 举报
回复

declare @told table(id int)
insert into @told select 1 union select 2 union select 5 union select 7

declare @lastnum int
select top 1 @lastnum=id from @told order by id desc

declare @tall table(id int)


while(@lastnum>0)
begin
insert into @tall (id) values(@lastnum)
set @lastnum=@lastnum-1
end

select * from @tall where id not in (select id from @told) order by id
Lovely_baby 2009-04-20
  • 打赏
  • 举报
回复
谢谢~~我得研究下 嘿嘿
子陌红尘 2009-04-20
  • 打赏
  • 举报
回复
--不考虑起始号码断号的情况:
declare @t table(id int)
insert into @t select 1 union select 2 union select 5 union select 7

select
rtrim(a.ID)+case when min(b.ID)=a.ID then '' else '-'+rtrim(min(b.ID)) end 断号区间
from
(select ID+1 as ID from @t t where not exists(select 1 from @t where ID=t.ID+1)) a,
(select ID-1 as ID from @t t where not exists(select 1 from @t where ID=t.ID-1)) b
where
a.ID<=b.ID
group by
a.ID

/*
断号区间
-------------------------
3-4
6
*/

34,588

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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