Κατηγορήματα ALL, DISTINCT, DISTINCTROW, TOP

Κατηγορήματα ALL, DISTINCT, DISTINCTROW, TOP

Σημείωση:  Θέλουμε να σας παρέχουμε το πιο πρόσφατο περιεχόμενο βοήθειας στη γλώσσα σας όσο πιο σύντομα γίνεται. Αυτή η σελίδα έχω μεταφραστεί μέσω αυτοματοποιημένης διαδικασίας και ενδεχομένως να περιέχει γραμματικά λάθη και ανακρίβειες. Ο σκοπός μας είναι αυτό το περιεχόμενο να σας φανεί χρήσιμο. Μπορείτε να μας ενημερώσετε στο κάτω μέρος αυτής της σελίδας εάν οι πληροφορίες σάς φάνηκαν χρήσιμες; Εδώ θα βρείτε το άρθρο στα Αγγλικά , για να το συμβουλεύεστε εύκολα.

Καθορίζει εγγραφές που επιλέγονται με ερωτήματα SQL.

Σύνταξη

ΕΠΙΛΈΞΤΕ [ΌΛΑ | ΔΙΑΚΡΙΤΌ | DISTINCTROW | [ΕΠΆΝΩ n [ΠΟΣΟΣΤΌ]]]
Από πίνακα

Μια πρόταση SELECT που περιέχει αυτά τα κατηγορήματα έχει τα εξής τμήματα:

Τμήμα

Περιγραφή

ALL

Θεωρείται ότι εάν δεν περιλαμβάνει ένα από τα κατηγορήματα. Το μηχανισμό βάσεων δεδομένων Microsoft Access επιλέγει όλες τις εγγραφές που πληρούν τις συνθήκες στην πρόταση SQL. Τα ακόλουθα δύο παραδείγματα είναι ισοδύναμη και επιστρέψει όλες τις εγγραφές από τον πίνακα υπάλληλοι:

SELECT ALL *
FROM Employees
ORDER BY EmployeeID;
SELECT *
FROM Employees
ORDER BY EmployeeID;

DISTINCT

Παραλείπει εγγραφές που περιέχουν διπλότυπα δεδομένα στα επιλεγμένα πεδία. Για να συμπεριληφθεί στα αποτελέσματα του ερωτήματος, οι τιμές για κάθε πεδίο που περιέχονται στην πρόταση SELECT πρέπει να είναι μοναδικό. Για παράδειγμα, ορισμένοι υπάλληλοι στον πίνακα "Υπάλληλοι" μπορεί να έχουν το ίδιο επώνυμο. Εάν δύο εγγραφές περιέχουν Παπαδόπουλος στο πεδίο "Επώνυμο", η ακόλουθη πρόταση SQL επιστρέφει μόνο μία εγγραφή που περιέχει Smith:

SELECT DISTINCT LastName
FROM Employees;

Εάν παραλειφθεί το όρισμα DISTINCT, αυτό το ερώτημα επιστρέφει και τις δύο εγγραφές Smith.

Εάν ο όρος SELECT περιέχει περισσότερα από ένα πεδία, ο συνδυασμός των τιμών από όλα τα πεδία πρέπει να είναι μοναδικός για μια δεδομένη εγγραφή να συμπεριληφθεί στα αποτελέσματα.

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

DISTINCTROW

Παραλείπει δεδομένα που βασίζονται σε ολόκληρα διπλότυπα δεδομένα, όχι μόνο σε διπλότυπα πεδία. Για παράδειγμα, θα μπορούσατε να δημιουργήσετε ένα ερώτημα που συνδέει τους πίνακες πελάτες και παραγγελίες στο πεδίο "κωδικός πελάτη". Ο πίνακας πελάτες δεν περιέχει διπλότυπες CustomerID πεδία, αλλά στον πίνακα Orders λειτουργεί επειδή κάθε πελάτης μπορεί να έχει πολλές παραγγελίες. Η ακόλουθη πρόταση SQL δείχνει πώς μπορείτε να χρησιμοποιήσετε DISTINCTROW για να δημιουργήσετε μια λίστα με εταιρείες που έχουν τουλάχιστον μία παραγγελία αλλά χωρίς λεπτομέρειες σχετικά με αυτές τις παραγγελίες:

SELECT DISTINCTROW CompanyName
FROM Customers INNER JOIN Orders
ON Customers.CustomerID = Orders.CustomerID
ORDER BY CompanyName;

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

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

ΑΡΧΉ n [ΠΟΣΟΣΤΌ]

Επιστρέφει έναν ορισμένο αριθμό εγγραφών, που βρίσκεται στο επάνω ή το κάτω μέρος μιας περιοχής που καθορίζεται από έναν όρο ORDER BY. Ας υποθέσουμε ότι θέλετε τα ονόματα των 25 καλύτερων μαθητών από την κλάση της 1994:

SELECT TOP 25
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage DESC;

Εάν δεν έχετε συμπεριλάβει ο όρος ORDER BY, το ερώτημα θα επιστρέψει ένα αυθαίρετο σύνολο 25 εγγραφών από τον πίνακα σπουδαστές που ικανοποιούν τον όρο WHERE.

Το κατηγόρημα TOP δεν επιλέγει μεταξύ ίσες τιμές. Στο προηγούμενο παράδειγμα, αν το πέμπτο είκοσι και είκοσι έκτη υψηλότερη βαθμολογία είναι ίδιοι, το ερώτημα θα επιστρέψει 26 εγγραφές.

Μπορείτε επίσης να χρησιμοποιήσετε τη δεσμευμένη λέξη PERCENT για να επιστρέψει ένα συγκεκριμένο ποσοστό εγγραφών, που βρίσκεται στο επάνω ή κάτω μέρος μιας περιοχής που καθορίζεται από έναν όρο ORDER BY. Ας υποθέσουμε ότι, αντί για τους 25 καλύτερους μαθητές, θέλετε κάτω 10 τοις εκατό της κλάσης:

SELECT TOP 10 PERCENT
FirstName, LastName
FROM Students
WHERE GraduationYear = 2003
ORDER BY GradePointAverage ASC;

Το κατηγόρημα ASC καθορίζει ότι επιστρέφονται κατώτερες τιμές. Η τιμή που ακολουθεί ΑΡΧΉ πρέπει να είναι ακέραιος χωρίς υπογραφή.

ΑΡΧΉ δεν επηρεάζει το ερώτημα έχει δυνατότητα ενημέρωσης ή όχι.

πίνακας

Το όνομα του πίνακα από τον οποίο γίνεται ανάκτηση των εγγραφών.



Αναπτύξτε τις δεξιότητές σας στο Office
Εξερευνήστε το περιεχόμενο της εκπαίδευσης
Αποκτήστε πρώτοι τις νέες δυνατότητες
Γίνετε μέλος του Office Insider

Σας βοήθησαν αυτές οι πληροφορίες;

Σας ευχαριστούμε για τα σχόλιά σας!

Σας ευχαριστούμε για τα σχόλιά σας! Φαίνεται ότι μπορεί να είναι χρήσιμο να συνδεθείτε με έναν από τους συνεργάτες υποστήριξης του Office.

×