[英]How can I find the missing sequence in column? sql server
我只想获得缺少的连续数字序列(星期几),(我找到了使用with
但在我的情况下我不喜欢使用它的解决方案)
是否有任何解决方案可以从包含 1 到 7 的连续数字的列中找到缺失的序列。
举个例子:
DayId
1
2
3
4
5
预期结果应显示:
MissingDays
6
7
另一个例子:
DayId
1
2
3
4
5
7
预期结果应显示:
MissingDays
6
如果缺少的数字只是一个数字而不是序列,则此查询将返回正确的结果,因为我使用了top 1
,如何返回缺少的序列?
SELECT top 1 dayId + 1 available_id
FROM days t
WHERE NOT EXISTS
(
SELECT *
FROM days
WHERE dayId = t.dayId+1
)
ORDER BY dayId
你需要一个日期列表。 您可以手动定义它并使用left join
:
select v.dayid
from (values (1), (2), (3), (4), (5), (6), (7)
) v(dayid) left join
days d
on d.dayid = v.dayid
where d.dayid is null;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.