表中有一列index,是从1开始按顺序编号,现在有数据缺失导致序号不连续,我可以怎么写sql找出缺失的序号,例如按序号排序之后后一行序号比当前行序号大于1的数据。
可以用deltas函数,例如:
t=table(1..10 join [12, 14,16] as id) select id from t where deltas(id)>1
上述t表中id从10跳到12,14,16,select语句能把12,14,16查询出来。
假设有一个表如下:
t = table(1..10 join [12 14 16] as index);
可以用以下方式实现
select id from table(min(ids)..max(ids) as id) where id not in (select id from t);