Bu makale makine çevirisi ayna makalesidir, orijinal makaleye geçmek için lütfen buraya tıklayın.

Görünüm: 15626|Yanıt: 2

[Kaynak] Oracle pagination query sorting data duplicate problem

[Bağlantıyı kopyala]
Yayınlandı 20.09.2017 09:52:47 | | |

Sayfa sorguları proje geliştirme sırasında sıkça kullanılır ve verileri tarihe göre sıralamak istediğinizde çok fazla tekrarlanan veri olur.

Bu sorun, tarihin değerinin veride benzersiz olmaması nedeniyle ortaya çıkar.

Biliyoruz

Oracle'ın sayfa sorgusu herhangi bir sıralama işlemi yapmaz, Oracle veri bloğundan uygun verileri sıralı olarak okur ve istemciye geri gönderir.

Oracle'ın sıralama algoritması kararlı değildir; yani anahtar eşit veri için, anahtar eşit verinin sıralama tamamlandıktan sonra sıralamadan önce sırayı koruyacağını garanti etmez.

Bu sorunun çözümü, problemi çözmek için ana anahtar gibi benzersiz bir sütun eklemektir.



veya






Önceki:Size birkaç faydalı yabancı IP proxy önereyim.
Önümüzdeki:.net/c# ile e-posta programı indirmelerini eklerle göndermek için
 Ev sahibi| Yayınlandı 25.09.2017 16:00:51 |
Oracle'da rownum ile row_number() arasındaki fark
http://www.itsvse.com/thread-4107-1-1.html
(Kaynak: Architect)
 Ev sahibi| Yayınlandı 25.09.2017 16:02:34 |
Bir sıra, koşul filtrelemesinden sonra ve herhangi bir sırayla veya toplamadan önce bir satıra atanır. Aynı zamanda, sıralık sayı yalnızca bir satıra atandığında artacaktır. Rownum'un başlangıç değeri 1'dir. Rownum, sorguda oluşturulduktan sonra artık değişmez:
emp'den * seçin, burada ROWNUM <= sal desc'e göre 5 sıra;
Bu ifadenin amacı, en yüksek 5 en yüksek ücretli çalışanın bilgilerini döndürmektir, ancak rownum ilkesine göre, rownum siparişten önce oluşturulmuş olduğu için bu ifade ilk 5 kişinin rolünü oynamaz, doğru sözdizimi şöyledir:
* from (sal desc'in emp sırasından * seç) seç, burada ROWNUM <=5;
Feragatname:
Code Farmer Network tarafından yayımlanan tüm yazılım, programlama materyalleri veya makaleler yalnızca öğrenme ve araştırma amaçları içindir; Yukarıdaki içerik ticari veya yasa dışı amaçlarla kullanılamaz, aksi takdirde kullanıcılar tüm sonuçları ödemelidir. Bu sitedeki bilgiler internetten alınmakta olup, telif hakkı anlaşmazlıklarının bu siteyle hiçbir ilgisi yoktur. Yukarıdaki içeriği indirmeden sonraki 24 saat içinde bilgisayarınızdan tamamen silmelisiniz. Programı beğendiyseniz, lütfen orijinal yazılımı destekleyin, kayıt satın alın ve daha iyi orijinal hizmetler alın. Herhangi bir ihlal olursa, lütfen bizimle e-posta yoluyla iletişime geçin.

Mail To:help@itsvse.com