数据库查询(求助-在线等各位大侠了)
问题是这样的, 数据库中 有几万条数据 ,以上是数据编号,但不是主键
00001
00002
00003
00004
00005
00007
00008
00009
00011
...
以上数据 生成时是连续的,由于删除了数据,所以就会产生断号,就像会计制单断号一样,现在要把那些不存在的号查询出来,要怎么查,用Linq,sql 不限……
[解决办法]
- C# code
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));
[解决办法]
还真想不出好的方法
就是集合的减法,但实现基本和上边的一样
[解决办法]
[解决办法]
SQL:select 编号 from tableName
根据上面的sql查找出来编号,放到一个集合当中,如上面方法进行相应的处理不就完了么
[解决办法]
帮LZ顶下
[解决办法]
- SQL code
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 行受影响)*/