Eu tenho uma consulta que é usada para pesquisar uma lista de subdivisões em nossa rede. Quando a consulta é executada sem nenhum filtro, ela retorna uma quantidade diferente de linhas a cada execução
SELECT DISTINCT
t1.ZRESUBDIV,
t1.SUBDIV_NAME
FROM M_STAGE_WP_PFUNCT_LOC t1
WHERE ROWNUM <= 200 -- normally a filter goes here
ORDER BY t1.SUBDIV_NAME
Execução 1
ZRESUBDIV SUBDIV_NAME ------------ -------------------------------------- ---------------------- 262 ALEXANDRIA 400 ALLANWATER 671 ASHCROFT 372 BALA 277 BEACHBURG 200 PONTE 374 CARAMAT 543 MONTANHA CENTRAL 208 CHAPAIS 324 CHATHAM 340 CHICAGO ...
Execução 2
ZRESUBDIV SUBDIV_NAME ------------ -------------------------------------- ---------------------- 670 ALBREDA 262 ALEXANDRIA 400 ALLANWATER 671 ASHCROFT 372 BALA 277 BEACHBURG 604 BLACKFOOT 200 PONTE 607 CAMROSE 354 CASO 543 MONTANHA CENTRAL ...
Também faltam dados: a subdivisão Baton Rouge nunca aparece, embora esteja nos dados.
Se eu remover o ROWNUM, todos os dados serão retornados corretamente. Preciso deixar ROWNUM, pois a consulta suporta uma cláusula WHERE com um filtro no nome da subdivisão.
Qual é a causa disso?