Denne artikel er en spejling af maskinoversættelse, klik venligst her for at springe til den oprindelige artikel.

Udsigt: 15626|Svar: 2

[Kilde] Oracle pagineringsforespørgselssorteringsproblem med dataduplikat

[Kopier link]
Opslået på 20/09/2017 09.52.47 | | |

Pagineringsforespørgsler bruges meget under projektudvikling, og når du vil sortere dataene efter dato, er der mange dubletter af data.

Dette problem opstår, fordi datoens værdi ikke er unik i dataene.

Vi ved det

Oracles pagineringsforespørgsel udfører ingen sorteringsoperationer; Oracle læser de berettigede data fra datablokken sekventielt og returnerer dem til klienten.

Oracles sorteringsalgoritme er ikke stabil, det vil sige, for nøgle-lige data garanterer denne algoritme ikke, at nøgle-lige data vil opretholde rækkefølgen før sortering efter algoritmen har afsluttet sorteringen.

Løsningen på dette problem er at tilføje en unik kolonne til sidst, såsom primærnøglen, for at løse problemet.



eller






Tidligere:Lad mig anbefale dig et par nyttige udenlandske IP-proxies.
Næste:.net/c# til at sende mail-programdownloads med vedhæftede filer
 Udlejer| Opslået på 25/09/2017 16.00.51 |
Forskellen mellem rownum og row_number() i Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Kilde: Arkitekt)
 Udlejer| Opslået på 25/09/2017 16.02.34 |
Et rownum tildeles en række efter hvor betingelsesfiltrering og før enhver orden efter eller aggregering. Samtidig vil rownum kun blive øget, når det tildeles en række. Startværdien af rownum er 1. rownum ændrer sig ikke længere efter at være genereret i forespørgslen:
vælg * fra emp, hvor ROWNUM <= 5 ordre efter sal desc;
Formålet med denne erklæring er at returnere information om de 5 højest betalte medarbejdere, men ifølge princippet om rownum er rownum genereret før ordre af, så denne erklæring spiller ikke rollen som top 5, den korrekte syntaks er som følger:
vælg * fra (vælg * fra EMP-ordre fra sal desc) hvor ROWNUM <= 5;
Ansvarsfraskrivelse:
Al software, programmeringsmaterialer eller artikler udgivet af Code Farmer Network er kun til lærings- og forskningsformål; Ovenstående indhold må ikke bruges til kommercielle eller ulovlige formål, ellers skal brugerne bære alle konsekvenser. Oplysningerne på dette site kommer fra internettet, og ophavsretstvister har intet med dette site at gøre. Du skal slette ovenstående indhold fuldstændigt fra din computer inden for 24 timer efter download. Hvis du kan lide programmet, så understøt venligst ægte software, køb registrering og få bedre ægte tjenester. Hvis der er nogen overtrædelse, bedes du kontakte os via e-mail.

Mail To:help@itsvse.com