Ez a cikk egy tükör gépi fordítás, kérjük, kattintson ide, hogy ugorjon az eredeti cikkre.

Nézet: 15626|Válasz: 2

[Forrás] Oracle pagination query sorting data duplicate problem

[Linket másol]
Közzétéve 2017. 09. 20. 9:52:47 | | |

A lapozási lekérdezéseket sokat használják a projektfejlesztés során, és amikor dátum szerint szeretnénk rendezni az adatokat, sok duplikált adat van.

Ez a probléma azért alakul ki, mert a dátum értéke nem egyedi az adatokban.

Tudjuk

Az Oracle oldalkeresése nem végez semmilyen rendezési műveletet, az Oracle sorrendben olvassa az adatblokkból a jogosult adatokat, majd visszaadja az ügyfélnek.

Az Oracle rendezési algoritmusa nem stabil, vagyis kulcs-egyenlő adatok esetén ez az algoritmus nem garantálja, hogy a kulcs-egyenlő adatok a rendezés előtt megőrizik a sorrendet, miután az algoritmus befejezte a rendezést.

A probléma megoldása egy egyedi oszlopot hozzáad a végére, például a fő kulcsot, hogy megoldjuk a problémát.



vagy






Előző:Hadd ajánljak néhány hasznos külföldi IP proxyt.
Következő:.net/c# segítségével küldhetsz e-mailes programletöltéseket csatolmányokkal
 Háziúr| Közzétéve 2017. 09. 25. 16:00:51 |
A különbség a rownum és a row_number() között az Orákulában
http://www.itsvse.com/thread-4107-1-1.html
(Forrás: Architect)
 Háziúr| Közzétéve 2017. 09. 25. 16:02:34 |
A sorszámot egy sorhoz rendelik a feltételszűrés után, és minden sorrend vagy aggregáció előtt. Ugyanakkor a sornum csak akkor nő, ha egy sorhoz van rendelve. A rownum kezdeti értéke 1. A Rownum már nem változik a lekérdezés generálása után:
az emp-ből válassz * opciót, ahol ROWNUM <= 5 sorrend sal decepció szerint;
Ennek az állításnak a célja, hogy visszaadja az 5 legjobban fizetett alkalmazott adatait, de a rownum elv szerint a rownum a rendelés előtt generálódott, így ez az állítás nem tölti be a top 5 szerepét, a helyes szintaxis a következő:
válassz * from (select * from EMP order by sal desc), ahol ROWNUM <=5;
Lemondás:
A Code Farmer Network által közzétett összes szoftver, programozási anyag vagy cikk kizárólag tanulási és kutatási célokra szolgál; A fenti tartalmat nem szabad kereskedelmi vagy illegális célokra használni, különben a felhasználók viselik az összes következményet. Az oldalon található információk az internetről származnak, és a szerzői jogi vitáknak semmi köze ehhez az oldalhoz. A fenti tartalmat a letöltés után 24 órán belül teljesen törölni kell a számítógépéről. Ha tetszik a program, kérjük, támogassa a valódi szoftvert, vásároljon regisztrációt, és szerezzen jobb hiteles szolgáltatásokat. Ha bármilyen jogsértés történik, kérjük, vegye fel velünk a kapcsolatot e-mailben.

Mail To:help@itsvse.com