Artikel ini adalah artikel cermin dari terjemahan mesin, silakan klik di sini untuk melompat ke artikel aslinya.

Melihat: 15626|Jawab: 2

[Sumber] Masalah penyortiran data penyortiran kueri penpaginaan Oracle

[Salin tautan]
Diposting pada 20/09/2017 09.52.47 | | |

Kueri penomoran halaman banyak digunakan selama pengembangan proyek, dan ketika Anda ingin mengurutkan data berdasarkan tanggal, ada banyak data duplikat.

Masalah ini terjadi karena nilai tanggal tidak unik dalam data.

Kami tahu

Kueri penomoran halaman Oracle tidak melakukan operasi penyortiran apa pun, Oracle membaca data yang memenuhi syarat dari blok data secara berurutan dan mengembalikannya ke klien.

Algoritma penyortiran Oracle tidak stabil, yaitu, untuk data yang sama dengan kunci, algoritme ini tidak menjamin bahwa data yang sama dengan kunci akan mempertahankan urutan sebelum menyortir setelah algoritme menyelesaikan penyortiran.

Solusi untuk masalah ini adalah dengan menambahkan kolom unik di bagian akhir, seperti kunci primer, untuk memecahkan masalah.



atau






Mantan:Izinkan saya merekomendasikan beberapa proxy IP asing yang berguna kepada Anda.
Depan:.net/c# untuk mengirim unduhan program email dengan lampiran
 Tuan tanah| Diposting pada 25/09/2017 16.00.51 |
Perbedaan antara rownum dan row_number() di Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Sumber: Arsitek)
 Tuan tanah| Diposting pada 25/09/2017 16.02.34 |
Rownum ditetapkan ke baris setelah pemfilteran kondisi di mana dan sebelum urutan atau agregasi apa pun. Pada saat yang sama, rownum hanya akan bertambah ketika ditetapkan ke baris. Nilai awal rownum adalah 1. rowNum tidak lagi berubah setelah dibuat dalam kueri:
pilih * dari emp di mana ROWNUM <= 5 order dengan sal desc;
Tujuan dari pernyataan ini adalah untuk mengembalikan informasi dari 5 karyawan dengan bayaran tertinggi, tetapi menurut prinsip rownum, rownum telah dihasilkan sebelum dipesan oleh, sehingga pernyataan ini tidak berperan sebagai 5 besar, sintaks yang benar adalah sebagai berikut:
pilih * dari (pilih * dari urutan emp berdasarkan sal desc) di mana ROWNUM <= 5;
Sanggahan:
Semua perangkat lunak, materi pemrograman, atau artikel yang diterbitkan oleh Code Farmer Network hanya untuk tujuan pembelajaran dan penelitian; Konten di atas tidak boleh digunakan untuk tujuan komersial atau ilegal, jika tidak, pengguna akan menanggung semua konsekuensi. Informasi di situs ini berasal dari Internet, dan sengketa hak cipta tidak ada hubungannya dengan situs ini. Anda harus sepenuhnya menghapus konten di atas dari komputer Anda dalam waktu 24 jam setelah pengunduhan. Jika Anda menyukai program ini, harap dukung perangkat lunak asli, pembelian pendaftaran, dan dapatkan layanan asli yang lebih baik. Jika ada pelanggaran, silakan hubungi kami melalui email.

Mail To:help@itsvse.com