Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 15626|Risposta: 2

[Fonte] Problema di duplicazione dei dati con ordinamento di query di paginazione oracolare

[Copiato link]
Pubblicato su 20/09/2017 09:52:47 | | |

Le query di paginazione sono molto utilizzate durante lo sviluppo del progetto, e quando vuoi ordinare i dati per data, ci sono molti dati duplicati.

Questo problema si verifica perché il valore della data non è univoco nei dati.

Lo sappiamo

La query di paginazione di Oracle non esegue alcuna operazione di ordinamento, Oracle legge i dati idonei dal blocco dati in sequenza e li restituisce al client.

L'algoritmo di ordinamento di Oracle non è stabile, cioè, per dati uguali a chiavi, questo algoritmo non garantisce che i dati uguali manterranno l'ordine prima di ordinare dopo che l'algoritmo ha completato l'ordinamento.

La soluzione a questo problema è aggiungere una colonna unica alla fine, come la chiave primaria, per risolvere il problema.



o






Precedente:Lascia che ti consigli alcuni utili proxy per IP stranieri.
Prossimo:.net/c# per inviare download di programmi tramite email con allegati
 Padrone di casa| Pubblicato su 25/09/2017 16:00:51 |
La differenza tra rownum e row_number() in Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Fonte: Architetto)
 Padrone di casa| Pubblicato su 25/09/2017 16:02:34 |
Un rownum viene assegnato a una riga dopo dove si verifica il filtraggio condizione e prima di qualsiasi ordine da o aggregazione. Allo stesso tempo, il rownum verrà incrementato solo quando viene assegnato a una riga. Il valore iniziale di rownum è 1. Rownum non cambia più dopo essere stato generato nella query:
selezionare * da emp dove ROWNUM <= 5 ordine tramite sal desc;
Lo scopo di questa affermazione è restituire le informazioni dei 5 dipendenti più pagati, ma secondo il principio di rownum, rownum è stato generato prima dell'ordine da, quindi questa affermazione non svolge il ruolo dei primi 5, la sintassi corretta è la seguente:
seleziona * da (seleziona * dall'ordine EMP tramite SAL desc) dove ROWNUM <= 5;
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com