【发布时间】:2017-08-31 07:06:28
【问题描述】:
我有一个表,其中包含开始和结束列都是INT。我需要找到第一个可用的N Range 与现有数据进行比较。
表架构:
CREATE TABLE [dbo].[MSRange]
(
[RangeId] [int] IDENTITY(1,1) NOT NULL,
[RangeStart] [int] NOT NULL,
[RangeEnd] [int] NOT NULL,
CONSTRAINT [PK_MSRange]
PRIMARY KEY CLUSTERED ([RangeId] ASC)
) ON [PRIMARY]
样本种子数据:
INSERT INTO [dbo].[MSRange] ([RangeStart], [RangeEnd])
VALUES (1, 150), (1250, 1500), (3100, 7500), (10500, 15000);
要求:
我需要找到 1000 个插槽的占位符,显然从种子数据中我们可以说 151 到 1150 是可用的。同样,对于 1500 个插槽意味着 1501 到 3000 个可用。
请帮助我如何获得第一个可用的占位符。
【问题讨论】:
-
@TT。我在一个现有的数据库表中工作,它不是一个新的数据库表。所以,现在我通过像这样利用中间的可用数字来优化数据。
-
他正在寻找的是差距。他的区间实际上是满的,他需要找到放置其他 1000/1500/N 值的位置
标签: sql-server sql-server-2016