这个查询:
SELECT ROWNUMBER,FATHERITEMNO,FATHERVARIANT
FROM STOCKBILLMAT WHERE FATHERVARIANT ='LOCK'
AND FATHERITEMNO ='U5138'
给了我2个结果:
12779526 "U5138" "LOCK"
12779527 "U5138" "LOCK"
但在同一张表上的以下查询:
SELECT ROWNUMBER,FATHERITEMNO,FATHERVARIANT
FROM STOCKBILLMAT WHERE FATHERVARIANT ='LOCK'
AND ROWNUMBER > 12818500
AND ROWNUMBER < 12818590
给了我这5个:
12818532 "U5318" "LOCK"
12818533 "U5318" "LOCK"
12818558 "U5318" "LOCK"
12818559 "U5318" "LOCK"
12818560 "U5318" "LOCK"
我的问题是,除非我有一个严重的金发时刻,否则第二个查询“应该”返回的所有行也都由第一个查询返回!
笔记:
- 我只添加了 ROWNUMBER 范围来缩小结果范围,因为我大致知道它们在哪里。如果我省略该过滤器并向下滚动,我会看到 5 个结果,而不是第一个查询中的 2 个结果......
- STOCKBILLMAT 是一个表,而不是一个视图。
- 查询在同一个数据库上执行,在同一个 QueryExpress 会话中,所有内容都相同。
- 服务器上有多个数据库具有大致相同的数据,并且在其他数据库上也会发生同样的事情。
知道为什么会这样吗?