SQL表的间隙

SQL表的间隙,sql,sql-server,Sql,Sql Server,我是阮文勇 我发现很难检查序列号的间隙,每个数字都是字符和数字的复合体 我有一张桌子,上面有 资料 现在我真的想显示一个输出表,如下所示 START_SERIAL END_SERIAL 3LBCF007787 3LBCF007790 3LBCF007792 3LBCF007795 请通过查询SQL server来支持我 非常感谢假设序列号的格式是固定的,这里有一种方法 拆分为 选择序列号, 左序列号,5前缀, CONVERTINTEGER,右序列号,6个 来自表1 ,订购为

我是阮文勇

我发现很难检查序列号的间隙,每个数字都是字符和数字的复合体 我有一张桌子,上面有 资料

现在我真的想显示一个输出表,如下所示

START_SERIAL END_SERIAL 3LBCF007787 3LBCF007790 3LBCF007792 3LBCF007795 请通过查询SQL server来支持我


非常感谢

假设序列号的格式是固定的,这里有一种方法

拆分为 选择序列号, 左序列号,5前缀, CONVERTINTEGER,右序列号,6个 来自表1 ,订购为 选择*, 按前缀排序的行数,num rn, 按前缀mnum划分的MINnum 从分裂 选择MINserial\u number start\u serial, 最大序列号结束序列号 从命令 按num-mnum-rn分组 输出:

| START_SERIAL | END_SERIAL | |--------------|-------------| | 3LBCF007787 | 3LBCF007790 | | 3LBCF007792 | 3LBCF007795 |
下面是演示

看看滞后和超前窗口功能。如果您使用SQL Server 2012,它们应该是您研究列表中的第一个。非常感谢Petern@Dũnguyễ不客气。如果这是你要找的,请考虑答案。 | START_SERIAL | END_SERIAL | |--------------|-------------| | 3LBCF007787 | 3LBCF007790 | | 3LBCF007792 | 3LBCF007795 |