相关疑难解决方法(0)

用于查找缺失序列号的SQL查询

我有一个名为的专栏sequence.此列中的数据类似于1,2,3,4,5,7,9,10,15.

我需要从表中找到丢失的序列号.什么SQL查询将从我的表中找到丢失的序列号?我期待结果如

Missing numbers
---------------
6  
8  
11  
12  
13  
14  
Run Code Online (Sandbox Code Playgroud)

我只使用一张桌子.我尝试了下面的查询,但没有得到我想要的结果.

select de.sequence + 1 as sequence from dataentry as de 
left outer join dataentry as de1 on de.sequence + 1 = de1.sequence
where de1.sequence is null  order by sequence asc;
Run Code Online (Sandbox Code Playgroud)

sql-server-2005 gaps-and-islands

43
推荐指数
4
解决办法
8万
查看次数

在 MS SQL 中查找序列中缺失的数字

假设我有一个带有整数列 ID 的表。我需要找到具有最大退货金额的missing numbersa 。sequence

  • 如果表是空的并且我要 10,它应该返回数字 1-10。
  • 如果表有 1-5,而我要 10,则它应该返回数字 6,7,8,9,10,11,12,13,14,15。
  • 如果表有 1,2,4,6,9 并且我要求 10,它应该返回数字 3,5,7,8,10,11,12,13,14,15

我怎样才能使用一个查询来实现这一目标MS SQL

提前致谢!

sql sql-server

3
推荐指数
1
解决办法
6529
查看次数

SQL Server:查找丢失 ID 的有效方法

我正在使用 SQL Server 来存储数千万条记录。我需要能够查询其表以查找 Id 列中存在间隙的缺失行,因为应该没有间隙。

我目前正在使用我在 StackOverflow 上找到的解决方案:

CREATE PROCEDURE [dbo].[find_missing_ids]
    @Table NVARCHAR(128)
AS
BEGIN
    DECLARE @query NVARCHAR(MAX)
    SET @query = 'WITH Missing (missnum, maxid) '
+ N'AS '
+ N'('
+ N' SELECT 1 AS missnum, (select max(Id) from ' + @Table + ') '
+ N'    UNION ALL '
+ N'    SELECT missnum + 1, maxid FROM Missing '
+ N'    WHERE missnum < maxid '
+ N') '
+ N'SELECT missnum '
+ N'FROM Missing ' …
Run Code Online (Sandbox Code Playgroud)

t-sql sql-server

1
推荐指数
1
解决办法
1486
查看次数