识别顺序记录或几乎顺序记录
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了识别顺序记录或几乎顺序记录相关的知识,希望对你有一定的参考价值。
我在包含发票编号记录的表中有一个名为发票的列。
我想确定发票编号是连续的或几乎连续的发票。顺序是1,2,3,4几乎连续是1或2的差]
而且我的发票编号记录为123124126128129133
答案
您可以尝试下面的查询,概念是前一个发票的顺序号+ 1应该是下一个,否则不是连续的。
create table #temp (InvNo int)
insert into #temp values (123), (124), (126), (128), (129), (133)
-- For sequential
SELECT
[current].InvNo,
[current].InvNo + 1,
ISNULL([next].InvNo, 0) - [current].InvNo as Seq
FROM
#temp AS [current]
LEFT JOIN
#temp AS [next]
ON [next].InvNo = (SELECT MIN(InvNo) FROM #temp WHERE InvNo > [current].InvNo)
where [current].InvNo + 1 = ISNULL([next].InvNo, 0)
-- For not sequential
SELECT
[current].InvNo
FROM
#temp AS [current]
LEFT JOIN
#temp AS [next]
ON [next].InvNo = (SELECT MIN(InvNo) FROM #temp WHERE InvNo > [current].InvNo)
where [current].InvNo + 1 <> ISNULL([next].InvNo, 0)
结果如下所示。
以上是关于识别顺序记录或几乎顺序记录的主要内容,如果未能解决你的问题,请参考以下文章