繁体   English   中英

获取序列中所有缺失的数字

[英]Get all missing numbers in the sequence

数字最初是字母数字,所以我有一个查询来解析数字:

我的查询在这里给了我一个数字列表:

从[DHI_IL_Stage]。[dbo]。[Violation]中选择不同的演员表(SUBSTRING(docket,7,999)作为INT)。并且LEFT(docket,4)='2011'的顺序是1

返回解析出的数字列表。 例如,该号码将为2012TR557。 使用查询后将是​​557。

我需要编写一个查询,该查询将按顺序返回丢失的数字。

这是一种方法。以下应为丢失的数字的每个序列返回一行。 因此,如果您的序列是3、5、6、9,那么它应该返回:

4     4
7     8

查询是:

with nums as (
       select distinct cast(SUBSTRING(docket, 7, 999) as INT) as n,
              row_number() over (order by cast(SUBSTRING(docket, 7, 999) as INT)) as seqnum
       from [DHI_IL_Stage].[dbo].[Violation]
       where InsertDataSourceID = '40' and
             ViolationCounty = 'Carroll' and
             SUBSTRING(docket,5,2) = 'TR' and
             LEFT(docket, 4) = '2011'
     )
select (nums_prev.n + 1) as first_missing, nums.n - 1 as last_missing
from nums left outer join
     nums nums_prev
     on nums.seqnum = nums_prev.seqnum + 1
where nums.n <> nums_prev.n + 1 ;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM