gpt4 book ai didi

sql-server - 如何在T-SQL中检查一组数字是否连续?

转载 作者:行者123 更新时间:2023-12-02 22:04:15 24 4
gpt4 key购买 nike

如果我有一个包含 n 行的整数列的表,并且想要检查它们是否连续,我该怎么做?

DECLARE @Temp TABLE 
(
IntegerValue INT,
Processed BIT
)

我有一个适用于 3 行的解决方案,但这是不可原谅的,如果需求发生变化,那么查询也会发生变化(忽略我的总和在这种情况下不起作用的事实)。

@SumOfValues = (@FirstValue * @NumOfValues) + @NumOfValues 

最佳答案

SELECT CASE
WHEN COUNT(DISTINCT IntegerValue) /*Or COUNT(*) dependant on how
duplicates should be treated */
= 1 + MAX(IntegerValue) - MIN(IntegerValue) THEN 'Y'
ELSE 'N'
END
FROM @Temp

如果你想知道差距在哪里,可以使用

;WITH T AS
(
SELECT *,
DENSE_RANK() OVER (ORDER BY IntegerValue) - IntegerValue AS Grp
FROM @Temp
)
SELECT MIN(IntegerValue) AS RangeStart,
MAX(IntegerValue) AS RangeEnd
FROM T
GROUP BY Grp
ORDER BY MIN(IntegerValue)

关于sql-server - 如何在T-SQL中检查一组数字是否连续?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7608370/

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