数据库中如何使用SQL查询连续号码段

数据库中如何使用SQL查询连续号码段,第1张

在ITPUB上有一则非常巧妙的SQL技巧 学习一下 记录在这里

最初的问题是这样的:

我有一个表结构 fphm kshm

(第二个字段内可能是连续的数据 可能存在断点 )

怎样能查询出来这样的结果 查询出连续的记录来 就像下面的这样?

ITPUB上的朋友给出了一个非常巧妙的答案:

SQL>SELECT b fphm MIN (b kshm) Start_HM MAX (b kshm) End_HM FROM (SELECT a * TO_NUMBER (a kshm ROWNUM) cc FROM (SELECT * FROM t ORDER BY fphm kshm) a) b GROUP BY b fphm /

FPHM START_HM END_HM

巧思妙想 就在一念之间 lishixinzhi/Article/program/Oracle/201311/17496

DECLARE @T1 table(UserID int , [name] nvarchar(50),num int)   

insert into @T1 (UserID,[name],num) values (1001,'a',8)   

insert into @T1 (UserID,[name],num) values (1002,'b',6)   

insert into @T1 (UserID,[name],num) values (1003,'c',8)   

insert into @T1 (UserID,[name],num) values (1004,'a',8)   

insert into @T1 (UserID,[name],num) values (1005,'b',8)  

select  * from  @t1

 select a.*  from 

(select  UserID,[name],[num] from  @t1 ) a  join

(select  UserID,[name],[num]  from  @t1 ) b  on a.UserID<b.UserID and a.UserID+1=b.UserID

and a.num=b.num

group by a.userid,a.[name],a.[num]

 

 

 得到结果:1003 c 8

         1004 a 8


欢迎分享,转载请注明来源:内存溢出

原文地址: http://www.outofmemory.cn/sjk/9634946.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-30
下一篇 2023-04-30

发表评论

登录后才能评论

评论列表(0条)

保存