SQL 查找没有使用的编号怎么办
1、单纯依赖这个表的信息,不存在有一个优化的sq盟敢势袂l来实现你的目的。从原理上必须要做两个集合的差集,效率问题无法回避。
2、建议,通过做删除标识保留删除的记录就可以很好地解决你的问题,并且这种方法很高效。
3、你可以建一表里面有个id值,里面保存所有编号。然后做两个运算的差集即可。
4、你创建一个保存所有编号的表:create table allno (id int)insert into allno values(1);insert into allno values(2);insert into allno values(3);insert into allno values(4);insert into allno values(5);insert into allno values(6);insert into allno values(7);insert into allno values(8);insert into allno values(9);insert into allno values(10);当前的表:create table tno (id int,xm varchar(10))insert into tno values(1,'小说');insert into tno values(2,'读者');insert into tno values(5,'语文');insert into tno values(7,'数学');insert into tno values(9,'英语');然后使用下面的sql:select allno.id,tno.id from allno left outer join tno on (allno.id=tno.id ) where tno.id is null输出的结果如下:
5、用一条sql语句不能计算出你的那些缺失的编号,原因在于缺失的数据的编号没有任何规律,无法用同一个函数推导出来。