gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-05 01:43:21 25 4
gpt4 key购买 nike

假设我有一个包含整数列 ID 的表。我需要在具有最大返回金额的序列中找到缺失的数字

  • 如果表格是空的,而我要 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 在单个查询中实现此目的?

提前致谢!

最佳答案

试试这个:

如果需要获取更多的数字,只需增加WHERE Number<=100即可.

DECLARE @Tab1 TABLE (ID INT)

INSERT INTO @Tab1 VALUES(1)
INSERT INTO @Tab1 VALUES(3)
INSERT INTO @Tab1 VALUES(5)
INSERT INTO @Tab1 VALUES(7)
INSERT INTO @Tab1 VALUES(9)

;WITH CTE AS
(
SELECT 1 AS Number
UNION ALL
SELECT Number + 1 FROM CTE
WHERE Number<=100
)
SELECT TOP 5 *
FROM CTE
WHERE Number NOT IN(SELECT ID FROM @Tab1)
ORDER BY Number
OPTION (maxrecursion 0);

现有值:

Number
1
3
5
7
9

输出:

Number
2
4
6
8
10

希望对你有帮助。

关于sql - 在 MS SQL 中查找序列中缺失的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49510818/

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