Κατηγορήματα ALL, DISTINCT, DISTINCTROW, TOP
Applies ToAccess για Microsoft 365 Access 2024 Access 2021 Access 2019 Access 2016

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

Σύνταξη

ΕΠΙΛΟΓΗ [ΟΛΑ | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]FROM πίνακας

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

Τμήμα

Περιγραφή

ALL

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

SELECT ALL *FROM EmployeesORDER BY EmployeeID;
SELECT *FROM EmployeesORDER BY EmployeeID;

DISTINCT

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

SELECT DISTINCT LastNameFROM Employees;

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

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

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

DISTINCTROW

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

SELECT DISTINCTROW CompanyNameFROM Customers INNER JOIN OrdersON Customers.CustomerID = Orders.CustomerIDORDER BY CompanyName;

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

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

TOP n [PERCENT]

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

SELECT TOP 25FirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage DESC;

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

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

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

SELECT TOP 10 PERCENTFirstName, LastNameFROM StudentsWHERE GraduationYear = 2003ORDER BY GradePointAverage ASC;

Το κατηχητικό asc καθορίζει μια επιστροφή των κατώτατων τιμών. Η τιμή που ακολουθεί τη συνάρτηση TOP πρέπει να είναι ένας ακέραιος ακέραιος αριθμός χωρίς υπογραφή.

Η συνάρτηση TOP δεν επηρεάζει αν το ερώτημα μπορεί να ενημερωθεί ή όχι.

πίνακας

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

Χρειάζεστε περισσότερη βοήθεια;

Θέλετε περισσότερες επιλογές;

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

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