比方说,我有如下表有三列:我可以使用SQL来查找下面给出的示例表中的缺失数字吗?
id | start_block | end_block
-----------------------------
01 | 00000000001 | 00000000005
02 | 00000000006 | 00000000011
03 | 00000000012 | 00000000018
04 | 00000000025 | 00000000031
05 | 00000000032 | 00000000043
每一行是一个“开始块”和“结束块”。如果数据是完美的,每个起始块将比它之前的结束块多一个。因此,对于行ID == 02,开始块是6,而该行的结束块前5
我需要查询这些数据(它的几万行),并发现任何缺失行。根据我的示例数据,03和04之间应该有一行,其起始块为19,结束块为24.
我试图在JSP中构建一个报告以调和这些数据并找到缺少的行。丑陋的方式做,这将是整个记录拉进一个数组,并在每一行做这样的事情:
if ((arry(i,1) + 1) != (arry(i+1),1)({
print("Bad Row!\n");
}
但是,我真的希望能够直接查询记录并返回我需要什么。那可能吗?如果不是,有人能指出我创建一个存储过程的正确方向吗?
我想我应该提到我正在使用Microsoft SQL Server 2005. – messick 2009-05-22 19:10:15
什么是列数据类型? – 2009-05-22 19:13:52
id是int,另外两个是字符串。 – messick 2009-05-24 03:42:29