如何获得输出:如果顺序id中有一个跳过,那么它就没有被接收,所以下一个id应该出现在下一行:



如果订单id中有一个跳过,那么它就不会被接收,所以下一个id应该出现在下一行:

i/p table :
1000
1001
1002
1003
1005
1006
1007
1008
1010
1011
1014
1015
etc..
O/p:
1000-1003
1005-1008
1010-1011
1014-1015

如何从查询中获取输出。提前谢谢。

使用row_number(),将其从值中减去,这样就可以获得连续数据具有相同值的列。使用此列进行分组,然后找到最小值和最大值:

演示

select min(id) ||' - '||max(id) op
from (select id, id - row_number() over (order by id) grp from ip)
group by grp order by grp

如果您的数据包含重复的值,您必须首先将其清除,请使用distinct

相关内容

  • 没有找到相关文章

最新更新