Ця стаття є дзеркальною статтею машинного перекладу, будь ласка, натисніть тут, щоб перейти до оригінальної статті.

Вид: 15626|Відповідь: 2

[Джерело] Oracle pagination query sorting data duplicate problem

[Копіювати посилання]
Опубліковано 20.09.2017 09: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
(Джерело: Architect)
 Орендодавець| Опубліковано 25.09.2017 16:02:34 |
Рядковий нум призначається рядку після , де фільтрація умов і перед будь-яким порядком за або агрегуванням. Водночас rownum буде збільшуватися лише тоді, коли він призначений рядку. Початкове значення rownum дорівнює 1. Rownum більше не змінюється після генерації у запиті:
вибрати * з emp, де ROWNUM <= 5 порядку за sal desc;
Мета цього твердження — повернути інформацію про п'яти найвисокооплачуваніших працівників, але згідно з принципом rownum, rownum був згенерований до порядку by, тому цей випис не виконує ролі топ-5, правильний синтаксис виглядає так:
select * з (select * з emp order, автором sal desc), де ROWNUM <= 5;
Застереження:
Усе програмне забезпечення, програмні матеріали або статті, опубліковані Code Farmer Network, призначені лише для навчання та досліджень; Вищезазначений контент не повинен використовуватися в комерційних чи незаконних цілях, інакше користувачі несуть усі наслідки. Інформація на цьому сайті надходить з Інтернету, і спори щодо авторських прав не мають до цього сайту. Ви повинні повністю видалити вищезазначений контент зі свого комп'ютера протягом 24 годин після завантаження. Якщо вам подобається програма, будь ласка, підтримуйте справжнє програмне забезпечення, купуйте реєстрацію та отримайте кращі справжні послуги. Якщо є будь-яке порушення, будь ласка, зв'яжіться з нами електронною поштою.

Mail To:help@itsvse.com