我在T-SQL中有这个专栏:
1
2
3
7
10
具有SQl功能,用于检测序列4,5,6和8,9中的缺失数字 我试过了 就像是 如果(a-b> 1)那么我们有一个缺失的数字
与coalesce但我不明白。 感谢任何方向
答案 0 :(得分:3)
你可以试试这个:
DELCARE @a
SET @a = SELECT MIN(number) FROM table
WHILE (SELECT MAX(number) FROM table ) > @a
BEGIN
IF @a NOT IN ( SELECT number FROM table )
PRINT @a
SET @a=@a+1
END
答案 1 :(得分:1)
以下查询将确定每个序列的起始位置和缺失的数字:
select t.col + 1 as MissingStart, (nextval - col - 1) as MissingSequenceLength
from (select t.col,
(select min(t.col) from t t2 where t2.col > t.col) as nextval
from t
) t
where nextval - col > 1
这是使用相关子查询来获取表中的下一个值。