如何检查SQL Server中的序列

塞尔瓦

我有一些情况,我需要为此检查顺序,我需要以下值的顺序

这是在sql db中显示的实际数据

  • 10001 10001
  • 10002 10002
  • 10003 10003
  • 10005 10005
  • 10006 10006
  • 10008 10008
  • 10009 10009
  • 10010 10010

所以我需要一个以上范围的值,像这样

  • 10001 10003
  • 10005 10006
  • 10008 10010

如果我要在sql中添加新行

  • 10004 10004

在上一行插入后,在sql db中显示的实际数据

  • 10001 10001
  • 10002 10002
  • 10003 10003
  • 10004 10004
  • 10005 10005
  • 10006 10006
  • 10008 10008
  • 10009 10009
  • 10010 10010

那么范围将是

  • 10001 10006
  • 10008 10010

如果我要在sql中添加新行

  • 10007 10007

在上一行插入后,在sql db中显示的实际数据

  • 10001 10001
  • 10002 10002
  • 10003 10003
  • 10004 10004
  • 10005 10005
  • 10006 10006
  • 10008 10008
  • 10007 10007
  • 10009 10009
  • 10010 10010

那么范围将是

  • 10001 10010

谁能帮忙解决这个问题

蒂姆·比格莱森(Tim Biegeleisen)

这是一个典型的差距和孤岛问题。我能够立即识别出查询的需求,但是由于这类问题在Stack Overflow上似乎很少出现,因此我需要一个引用来震撼我的记忆。在Microsoft的TechNet网站上有一篇很棒的文章,深入探讨了差距,孤岛和性能。我建议您阅读它,以便您可以了解以下查询的工作方式。

SELECT t1.gapID as startOfGroup, MIN(t2.gapID) AS endOfGroup
FROM
(
    SELECT gapID
    FROM gaps tbl1 
    WHERE NOT EXISTS
    (
        SELECT * FROM gaps tbl2 
        WHERE tbl1.gapID = tbl2.gapID + 1
    )
) t1
INNER JOIN
(
    SELECT gapID
    FROM gaps tbl1 
    WHERE NOT EXISTS
    (
        SELECT * FROM gaps tbl2 
        WHERE tbl2.gapID = tbl1.gapID + 1
    )
) t2
    ON t1.gapID <= t2.gapID
GROUP BY t1.gapID

我为您在MySQL中的问题创建了一个Fiddle,因为SQL Server似乎一直在该站点上被破坏。

SQLFiddle

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何确定SQL Server 2012中是否存在序列?

来自分类Dev

如何在实体框架中获取SQL Server序列的下一个值?

来自分类Dev

在MS SQL Server 2008中创建序列

来自分类Dev

在动态SQL中如何检查日期

来自分类Dev

在SQL Server中检查模拟

来自分类Dev

如何检查SQL Server表中是否存在行?

来自分类Dev

在SQL Server中删除时消除序列号“间隙”

来自分类Dev

SQL Server动态序列

来自分类Dev

如何检查SQL Server表中列值的组合

来自分类Dev

如何检查SQL Server中是否存在多列

来自分类Dev

SQL Server中的字母数字序列

来自分类Dev

如何缩小SQL Server中的序列缺口?

来自分类Dev

如何检查序列中的值是唯一的

来自分类Dev

如何检查SQL Server中的序列

来自分类Dev

如何在SQL Server中检查回文

来自分类Dev

CakePHP SQL日志-如何从以前的请求中检查SQL日志?

来自分类Dev

在SQL Server中查找序列号

来自分类Dev

如何在SQL Server中检查调用存储过程

来自分类Dev

我在SQL Server上有检查约束,如何在C#中设置检查约束的验证?

来自分类Dev

如何检查SQL Server约束是否存在?

来自分类Dev

如何检查Cookie中的SQL注入

来自分类Dev

SQL Server 2012中已创建表的序列

来自分类Dev

如何检查数据序列中的值?

来自分类Dev

如何检查SQL Server中是否执行了任何IF块

来自分类Dev

在SQL Server中查找丢失的多个数字序列

来自分类Dev

如何检查序列中的值是唯一的

来自分类Dev

为什么序列标识在SQL Server序列中不起作用?

来自分类Dev

如何在SQL Server触发器中执行IF检查

来自分类Dev

如何使用 SQL Server 检查 then 块中的条件?