Αυτό το άρθρο είναι ένα άρθρο καθρέφτη της αυτόματης μετάφρασης, κάντε κλικ εδώ για να μεταβείτε στο αρχικό άρθρο.

Άποψη: 15626|Απάντηση: 2

[Πηγή] Πρόβλημα διπλότυπου ερωτήματος σελιδοποίησης Oracle

[Αντιγραφή συνδέσμου]
Δημοσιεύτηκε στις 20/9/2017 9:52:47 π.μ. | | |

Τα ερωτήματα σελιδοποίησης χρησιμοποιούνται πολύ κατά την ανάπτυξη του έργου και όταν θέλετε να ταξινομήσετε τα δεδομένα κατά ημερομηνία, υπάρχουν πολλά διπλότυπα δεδομένα.

Αυτό το ζήτημα παρουσιάζεται επειδή η τιμή της ημερομηνίας δεν είναι μοναδική στα δεδομένα.

Γνωρίζουμε

Το ερώτημα σελιδοποίησης της Oracle δεν εκτελεί καμία λειτουργία ταξινόμησης, η Oracle διαβάζει τα κατάλληλα δεδομένα από το μπλοκ δεδομένων διαδοχικά και τα επιστρέφει στον πελάτη.

Ο αλγόριθμος ταξινόμησης της Oracle δεν είναι σταθερός, δηλαδή, για δεδομένα ίσα με κλειδί, αυτός ο αλγόριθμος δεν εγγυάται ότι τα δεδομένα ίσα με κλειδί θα διατηρήσουν τη σειρά πριν από την ταξινόμηση αφού ο αλγόριθμος ολοκληρώσει την ταξινόμηση.

Η λύση σε αυτό το πρόβλημα είναι να προσθέσετε μια μοναδική στήλη στο τέλος, όπως το πρωτεύον κλειδί, για να λύσετε το πρόβλημα.



ή






Προηγούμενος:Επιτρέψτε μου να σας προτείνω μερικούς χρήσιμους ξένους διακομιστές μεσολάβησης IP.
Επόμενος:.net/c# για αποστολή λήψεων προγραμμάτων αλληλογραφίας με συνημμένα
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 25/9/2017 4:00:51 μ.μ. |
Η διαφορά μεταξύ rownum και row_number() στην Oracle
http://www.itsvse.com/thread-4107-1-1.html
(Πηγή: Αρχιτέκτονας)
 Σπιτονοικοκύρης| Δημοσιεύτηκε στις 25/9/2017 4:02:34 μ.μ. |
Ένας αριθμός γραμμών εκχωρείται σε μια γραμμή μετά το φιλτράρισμα συνθήκης όπου και πριν από οποιαδήποτε παραγγελία κατά ή συνάθροιση. Ταυτόχρονα, ο αριθμός σειρών θα αυξηθεί μόνο όταν αντιστοιχιστεί σε μια σειρά. Η αρχική τιμή του rownum είναι 1. Το rownum δεν αλλάζει πλέον μετά τη δημιουργία του στο ερώτημα:
επιλέξτε * από emp όπου ROWNUM <= 5 παραγγελία κατά sal desc;
Ο σκοπός αυτής της δήλωσης είναι να επιστρέψει τις πληροφορίες των 5 πιο ακριβοπληρωμένων υπαλλήλων, αλλά σύμφωνα με την αρχή του rownum, το rownum έχει δημιουργηθεί πριν από την παραγγελία από, επομένως αυτή η δήλωση δεν παίζει το ρόλο των κορυφαίων 5, η σωστή σύνταξη είναι η εξής:
επιλέξτε * από (επιλέξτε * από τη σειρά emp κατά sal desc) όπου ROWNUM <= 5;
Αποκήρυξη:
Όλο το λογισμικό, το υλικό προγραμματισμού ή τα άρθρα που δημοσιεύονται από το Code Farmer Network προορίζονται μόνο για μαθησιακούς και ερευνητικούς σκοπούς. Το παραπάνω περιεχόμενο δεν θα χρησιμοποιηθεί για εμπορικούς ή παράνομους σκοπούς, άλλως οι χρήστες θα υποστούν όλες τις συνέπειες. Οι πληροφορίες σε αυτόν τον ιστότοπο προέρχονται από το Διαδίκτυο και οι διαφορές πνευματικών δικαιωμάτων δεν έχουν καμία σχέση με αυτόν τον ιστότοπο. Πρέπει να διαγράψετε εντελώς το παραπάνω περιεχόμενο από τον υπολογιστή σας εντός 24 ωρών από τη λήψη. Εάν σας αρέσει το πρόγραμμα, υποστηρίξτε γνήσιο λογισμικό, αγοράστε εγγραφή και λάβετε καλύτερες γνήσιες υπηρεσίες. Εάν υπάρχει οποιαδήποτε παραβίαση, επικοινωνήστε μαζί μας μέσω email.

Mail To:help@itsvse.com