Тази статия е огледална статия за машинен превод, моля, кликнете тук, за да преминете към оригиналната статия.

Изглед: 15626|Отговор: 2

[Източник] Oracle pagination query sorting data duplicate problem

[Копирай линк]
Публикувано в 20.09.2017 г. 9:52:47 ч. | | |

Заявките за пагинация се използват много по време на разработката на проекта, а когато искате да сортирате данните по дата, има много дублирани данни.

Този проблем възниква, защото стойността на датата не е уникална в данните.

Знаем

Заявката за пагинация на Oracle не извършва никакви операции за сортиране, Oracle чете допустимите данни от блока с данни последователно и ги връща на клиента.

Алгоритъмът за сортиране на Oracle не е стабилен, тоест за данни с ключови равенства този алгоритъм не гарантира, че данните за ключови равни ще поддържат реда преди сортирането след завършване на сортирането.

Решението на този проблем е да се добави уникална колона в края, като първичния ключ, за да се реши проблемът.



или






Предишен:Позволете ми да ви препоръчам няколко полезни чуждестранни IP проксита.
Следващ:.net/c# за изпращане на файлове за изтегляне на поща с прикачени файлове
 Хазяин| Публикувано в 25.09.2017 г. 16:00:51 ч. |
Разликата между rownum и row_number() в Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Източник: Архитект)
 Хазяин| Публикувано в 25.09.2017 г. 16:02:34 ч. |
Ред се присвоява на ред след филтриране на условия и преди всяко подреждане по или агрегиране. В същото време rownum ще се увеличава само когато е присвоен на ред. Началната стойност на rownum е 1. Rownum вече не се променя след генериране в заявката:
изберете * от emp, където ROWNUM <= 5 ред по sal desc;
Целта на това изявление е да върне информацията за топ 5 най-високо платените служители, но според принципа на rownum, rownum е генериран преди поръчка от , така че това изявление не играе ролята на топ 5, правилният синтаксис е следният:
select * от (select * от EMP order by sal desc), където ROWNUM <= 5;
Отричане:
Целият софтуер, програмни материали или статии, публикувани от Code Farmer Network, са само за учебни и изследователски цели; Горното съдържание не трябва да се използва за търговски или незаконни цели, в противен случай потребителите ще понесат всички последствия. Информацията на този сайт идва от интернет, а споровете за авторски права нямат нищо общо с този сайт. Трябва напълно да изтриете горното съдържание от компютъра си в рамките на 24 часа след изтеглянето. Ако ви харесва програмата, моля, подкрепете оригинален софтуер, купете регистрация и получете по-добри услуги. Ако има нарушение, моля, свържете се с нас по имейл.

Mail To:help@itsvse.com