Καθορίζει τις εγγραφές που επιλέγονται με ερωτήματα SQL.
Σύνταξη
ΕΠΙΛΟΓΗ [ΟΛΑ | DISTINCT | DISTINCTROW | [TOP n [PERCENT]]]
FROM πίνακαςΜια πρόταση SELECT που περιέχει αυτά τα κατηγορήματα έχει τα ακόλουθα τμήματα:
Τμήμα |
Περιγραφή |
ALL |
Θεωρείται δεδομένο εάν δεν συμπεριλάβετε ένα από τα κατηγορήματα. Ο μηχανισμός βάσεων δεδομένων της Microsoft Access επιλέγει όλες τις εγγραφές που πληρούν τις συνθήκες στην πρόταση SQL. Τα παρακάτω δύο παραδείγματα είναι ισοδύναμα και επιστρέφουν όλες τις εγγραφές από τον πίνακα Employees:
|
DISTINCT |
Παραλείπει εγγραφές που περιέχουν διπλότυπα δεδομένα στα επιλεγμένα πεδία. Για να συμπεριληφθούν στα αποτελέσματα του ερωτήματος, οι τιμές για κάθε πεδίο που παρατίθεται στην πρόταση SELECT πρέπει να είναι μοναδικές. Για παράδειγμα, πολλοί υπάλληλοι που παρατίθενται σε έναν πίνακα "Υπάλληλοι" μπορεί να έχουν το ίδιο επώνυμο. Εάν δύο εγγραφές περιέχουν την τιμή Smith στο πεδίο LastName, η παρακάτω πρόταση SQL επιστρέφει μόνο μία εγγραφή που περιέχει τη συνάρτηση Smith:
Εάν παραλείψετε τη συνάρτηση DISTINCT, αυτό το ερώτημα επιστρέφει και τις δύο εγγραφές Smith. Εάν ο όρος SELECT περιέχει περισσότερα από ένα πεδία, ο συνδυασμός τιμών από όλα τα πεδία πρέπει να είναι μοναδικός για να συμπεριληφθεί μια δεδομένη εγγραφή στα αποτελέσματα. Το αποτέλεσμα ενός ερωτήματος που χρησιμοποιεί τη συνάρτηση DISTINCT δεν έχει δυνατότητα ενημέρωσης και δεν αντικατοπτρίζει τις επόμενες αλλαγές που έγιναν από άλλους χρήστες. |
DISTINCTROW |
Παραλείπει δεδομένα με βάση ολόκληρες διπλότυπες εγγραφές, όχι μόνο διπλότυπα πεδία. Για παράδειγμα, μπορείτε να δημιουργήσετε ένα ερώτημα που συνδέει τους πίνακες "Πελάτες" και "Παραγγελίες" στο πεδίο "Αναγνωριστικό Πελάτη". Ο πίνακας Πελάτες δεν περιέχει διπλότυπα πεδία "Αναγνωριστικό Πελάτη", αλλά ο πίνακας "Παραγγελίες" έχει, επειδή κάθε πελάτης μπορεί να έχει πολλές παραγγελίες. Η παρακάτω πρόταση SQL δείχνει πώς μπορείτε να χρησιμοποιήσετε τη συνάρτηση DISTINCTROW για να δημιουργήσετε μια λίστα εταιρειών που έχουν τουλάχιστον μία παραγγελία αλλά χωρίς λεπτομέρειες σχετικά με αυτές τις παραγγελίες:
Εάν παραλείψετε τη συνάρτηση DISTINCTROW, αυτό το ερώτημα παράγει πολλές γραμμές για κάθε εταιρεία που έχει περισσότερες από μία παραγγελίες. Η συνάρτηση DISTINCTROW έχει ένα αποτέλεσμα μόνο όταν επιλέγετε πεδία από ορισμένους, αλλά όχι από όλους τους πίνακες που χρησιμοποιούνται στο ερώτημα. Η συνάρτηση DISTINCTROW παραβλέπεται εάν το ερώτημά σας περιλαμβάνει μόνο έναν πίνακα ή εάν εξάγετε πεδία από όλους τους πίνακες. |
TOP n [PERCENT] |
Επιστρέφει έναν ορισμένο αριθμό εγγραφών που βρίσκονται στο επάνω ή το κάτω μέρος μιας περιοχής που καθορίζεται από τον όρο ORDER BY. Ας υποθέσουμε ότι θέλετε τα ονόματα των 25 κορυφαίων μαθητών από την τάξη του 1994:
Εάν δεν συμπεριλάβετε τον όρο ORDER BY, το ερώτημα θα επιστρέψει ένα αυθαίρετο σύνολο 25 εγγραφών από τον πίνακα Students που ικανοποιούν τον όρο WHERE. Το predate TOP δεν επιλέγει μεταξύ ίσων τιμών. Στο προηγούμενο παράδειγμα, εάν οι μέσοι όροι της εικοστής πέμπτης και της εικοστής έκτης υψηλότερης βαθμολογίας είναι οι ίδιοι, το ερώτημα θα επιστρέψει 26 εγγραφές. Μπορείτε επίσης να χρησιμοποιήσετε τη δεσμευμένη λέξη PERCENT για να λάβετε ένα συγκεκριμένο ποσοστό εγγραφών που βρίσκονται στο επάνω ή το κάτω μέρος μιας περιοχής που καθορίζεται από έναν όρο ORDER BY. Ας υποθέσουμε ότι, αντί για τους 25 πρώτους μαθητές, θέλετε το κάτω 10 τοις εκατό της τάξης:
Το κατηχητικό asc καθορίζει μια επιστροφή των κατώτατων τιμών. Η τιμή που ακολουθεί τη συνάρτηση TOP πρέπει να είναι ένας ακέραιος ακέραιος αριθμός χωρίς υπογραφή. Η συνάρτηση TOP δεν επηρεάζει αν το ερώτημα μπορεί να ενημερωθεί ή όχι. |
πίνακας |
Το όνομα του πίνακα από τον οποίο γίνεται ανάκτηση των εγγραφών. |