[英]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.