数据库查询(求助-在线等各位大侠了)
问题是这样的, 数据库中 有几万条数据 ,以上是数据编号,但不是主键
00001
00002
00003
00004
00005
00007
00008
00009
00011
...
以上数据 生成时是连续的,由于删除了数据,所以就会产生断号,就像会计制单断号一样,现在要把那些不存在的号查询出来,要怎么查,用Linq,sql 不限……
[解决办法]
List<int> list = new List<int>() {1,3,5,6,7,8,10 }; var query = Enumerable.Range(list.Min(), list.Max() - list.Min()+1).Except(list); query.ToList().ForEach(p => Console.WriteLine(p));
[解决办法]
还真想不出好的方法
就是集合的减法,但实现基本和上边的一样
[解决办法]
CREATE TABLE TB(col CHAR(5))INSERT dbo.TBSELECT '00001' UNION ALLSELECT '00002' UNION ALLSELECT '00003' UNION ALLSELECT '00004' UNION ALLSELECT '00005' UNION ALLSELECT '00007' UNION ALLSELECT '00008' UNION ALLSELECT '00009' UNION ALLSELECT '00011';DECLARE @n AS INTSELECT @n=MAX(col) FROM dbo.TB;WITH cte AS( SELECT 1 AS n UNION ALL SELECT n+1 FROM cte WHERE n<@n)SELECT RIGHT('0000' + CONVERT(VARCHAR(5), n), 5)FROM cteWHERE n NOT IN ( SELECT col FROM dbo.TB )DROP TABLE dbo.TB/*---------0000600010(2 行受影响)*/