gpt4 book ai didi

sql - 在一组数字中查找连续范围

转载 作者:行者123 更新时间:2023-12-04 09:43:33 25 4
gpt4 key购买 nike

我在数据库表中有一组相当大的电话号码(大约 200 万个)。这些数字已插入块中,因此有许多连续的数字范围,范围内从 10 个数字到 10000 个数字。其中一些号码正在使用中,因此被标记为不可用,其余的可用。给定一个特定的数字,我需要一种方法来找到该数字之上和之下的连续数字范围。范围应该继续直到它找到一个不可用的数字,或者遇到两个范围的边界。

例如给出以下集合:

1000
1001
1002
1010
1011
1012
1013
1020
1021
1022

使用 1012 作为参数进行搜索应该返回 1010、1011、1012、1013。

形成查询以查找这些范围的好方法是什么?我们在 SQL 服务器之上使用 NHibernate,使用任一解决方案都可以。

最佳答案

理论上,集合中的项目没有特定的值,所以我假设您还有一些连续的 ID 列来定义数字的顺序。像这样的东西:

ID  Number
1 1000
2 1001
3 1002
4 1010
5 1011
6 1012
7 1013
8 1020
9 1021
10 1022

您可以创建一个额外的列,其中包含 Number - ID 的结果。 :
ID  Number  Diff
1 1000 999
2 1001 999
3 1002 999
4 1010 1006
5 1011 1006
6 1012 1006
7 1013 1006
8 1020 1012
9 1021 1012
10 1022 1012

相同范围内的数字在 Diff 列中将具有相同的结果。

关于sql - 在一组数字中查找连续范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3139323/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com