簡體   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