比方說,我有如下表有三列:我可以使用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