Este artigo é um artigo espelhado de tradução automática, por favor clique aqui para ir para o artigo original.

Vista: 15626|Resposta: 2

[Fonte] Problema de duplicação de dados com consulta de paginação Oracle

[Copiar link]
Publicado em 20/09/2017 09:52:47 | | |

Consultas de paginação são muito usadas durante o desenvolvimento de projetos, e quando você quer ordenar os dados por data, há muitos dados duplicados.

Esse problema ocorre porque o valor da data não é único nos dados.

Nós sabemos

A consulta de paginação da Oracle não realiza nenhuma operação de ordenação, a Oracle lê os dados elegíveis do bloco de dados sequencialmente e os retorna ao cliente.

O algoritmo de ordenação da Oracle não é estável, ou seja, para dados com chave igual, esse algoritmo não garante que os dados com chave igual mantenham a ordem antes de ordenar após o algoritmo concluir a ordenação.

A solução para esse problema é adicionar uma coluna única no final, como a chave primária, para resolver o problema.



ou






Anterior:Deixe-me recomendar alguns proxies de IP estrangeiros úteis para você.
Próximo:.net/c# para enviar downloads de programas de e-mail com anexos
 Senhorio| Publicado em 25/09/2017 16:00:51 |
A diferença entre rownum e row_number() em Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Fonte: Architect)
 Senhorio| Publicado em 25/09/2017 16:02:34 |
Um rownum é atribuído a uma linha após onde filtragem de condição e antes de qualquer ordem por ou agregação. Ao mesmo tempo, o rownum só será incrementado quando for atribuído a uma linha. O valor inicial de rownum é 1. Rownum não muda mais após ser gerado na consulta:
selecionar * de emp onde ROWNUM <= 5 ordem por desc. sal;
O objetivo desta afirmação é devolver as informações dos 5 funcionários mais bem pagos, mas de acordo com o princípio do rownum, o rownum foi gerado antes da ordem por, então essa afirmação não desempenha o papel do top 5, a sintaxe correta é a seguinte:
select * from (select * from EMP order by SAL desc) onde ROWNUM <= 5;
Disclaimer:
Todo software, material de programação ou artigos publicados pela Code Farmer Network são apenas para fins de aprendizado e pesquisa; O conteúdo acima não deve ser usado para fins comerciais ou ilegais, caso contrário, os usuários terão todas as consequências. As informações deste site vêm da Internet, e disputas de direitos autorais não têm nada a ver com este site. Você deve deletar completamente o conteúdo acima do seu computador em até 24 horas após o download. Se você gosta do programa, por favor, apoie um software genuíno, compre o registro e obtenha serviços genuínos melhores. Se houver qualquer infração, por favor, entre em contato conosco por e-mail.

Mail To:help@itsvse.com