Ρήτρα PostgreSQL IN

Retra Postgresql In



Υπάρχουν πολλές ρήτρες που μπορείτε να χρησιμοποιήσετε στο PostgreSQL. Η ρήτρα IN είναι μία από αυτές τις ρήτρες και έχει πολλά οφέλη όταν καταλαβαίνετε πώς να τη χρησιμοποιήσετε, ειδικά όταν συνδυάζεται με την ρήτρα WHERE. Ο όρος IN λειτουργεί κυρίως με την πρόταση SELECT για να φιλτράρει τον τρόπο με τον οποίο θέλετε να εκτελεστεί το ερώτημα. Όταν εκτελείται, ο όρος IN ελέγχει την καθορισμένη λίστα για να δει αν ταιριάζει με τα κριτήρια και εξάγει τις τιμές που ταιριάζουν.

Κατανόηση του τρόπου εργασίας με την ρήτρα PostgreSQL IN

Στην PostgreSQL, χρησιμοποιείτε τον όρο IN με τον όρο WHERE για να φιλτράρετε την έξοδο ελέγχοντας μια λίστα τιμών και το αποτέλεσμα είναι μια τιμή Boolean.

Ακολουθεί η σύνταξη που πρέπει να χρησιμοποιήσετε:







τιμή IN (τιμή1, τιμή2, τιμή_n);

Η δεδομένη σύνταξη παίρνει την τιμή και την ελέγχει έναντι των τιμών1, τιμή2 και τιμή_n. Στη συνέχεια, επιστρέφει ένα Boolean εάν υπάρχει αντιστοιχία. Η λίστα των τιμών προς έλεγχο μπορεί να είναι οποιουδήποτε κυριολεκτικού τύπου, συμπεριλαμβανομένων συμβολοσειρών και ακεραίων. Επιπλέον, μπορείτε να δημιουργήσετε ένα δευτερεύον ερώτημα, όπως μια δήλωση SELECT.



Ας συζητήσουμε τους διαφορετικούς τρόπους χρήσης του τελεστή PostgreSQL IN.



1. Εργασία με υποερώτημα

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





Ας υποθέσουμε ότι θέλουμε να ελέγξουμε όλους τους πελάτες των οποίων το 'order_id' θα μπορούσε να είναι οποιαδήποτε από τις τιμές που καθορίζονται στην ενότητα ερωτήματος. Προσθέτουμε την τιμή στόχο ως το πρώτο μέρος της δήλωσής μας και, στη συνέχεια, χρησιμοποιούμε τον όρο WHERE με τον όρο IN για να δημιουργήσουμε το ερώτημα.



Δείτε πώς εμφανίζεται το ερώτημά μας:

Η PostgreSQL ελέγχει τη στήλη 'order_id' στον πίνακα 'customers' και επιστρέφει όλες τις εγγραφές των οποίων το 'order_id' αντιστοιχεί σε οποιαδήποτε από αυτές που καθορίσαμε στις αγκύλες.

Για πρώτη φορά, χρησιμοποιήσαμε μια περίπτωση μιας ακέραιας λίστας τιμών. Μπορούμε επίσης να ελέγξουμε τις χορδές. Σημειώστε ότι εάν όλες οι συμβολοσειρές που καθορίζετε δεν ταιριάζουν με την τιμή στόχο, δεν επιστρέφεται τίποτα. Το παρακάτω παράδειγμα περιέχει κάποιες συμβολοσειρές που δεν υπάρχουν στον πίνακά μας. Τέτοιες συμβολοσειρές θα παραβλεφθούν και μόνο αυτές που ταιριάζουν θα εμφανίζονται στην ακόλουθη έξοδο:

2. Εργασία με IN(SELECT)

Μερικές φορές, ο μη αυτόματος καθορισμός της λίστας τιμών ενδέχεται να μην λειτουργεί. Μπορείτε να επιλέξετε να χρησιμοποιήσετε μια δήλωση SELECT για να λάβετε μια λίστα τιμών από τον πίνακά σας και να τις χρησιμοποιήσετε για να ελέγξετε την τιμή-στόχο. Προσθέτοντας τον παρακάτω πίνακα στη βάση δεδομένων μας, μπορούμε να τον συνδυάσουμε με τον προηγούμενο πίνακα 'πελάτες' για να δημιουργήσουμε το υποερώτημά μας:

Ας υποθέσουμε ότι θέλουμε να εμφανίζουμε τις εγγραφές από τον πίνακα 'παραγγελίες' μόνο εάν η τιμή-στόχος (αναγνωριστικό_παραγγελίας) βρίσκεται στον πίνακα 'πελάτες'. Εδώ, η στήλη 'customers.order_id' είναι η λίστα των τιμών μας και ελέγχουμε τις τιμές της σε σχέση με αυτές στη στήλη 'orders.order_id'.

Για αυτήν την περίπτωση, μόνο τρεις καταχωρήσεις ταιριάζουν με την αναζήτηση και αυτό είναι αυτό που λαμβάνουμε ως έξοδο για τον όρο IN(SELECT) PostgreSQL.

3. Εργασία με την ρήτρα NOT IN PostgreSQL

Χρησιμοποιώντας την προηγούμενη εντολή, μπορούμε να επιλέξουμε να εμφανίσουμε τις άλλες τιμές που δεν ταιριάζουν με την τιμή στόχο. Για αυτό, κάνουμε το αντίθετο από αυτό που κάνει η ρήτρα IN. Ως εκ τούτου, ακυρώνουμε την εντολή NOT IN.

Δείτε πώς γράφουμε τη νέα μας εντολή:

Παρατηρήστε ότι λαμβάνουμε μια διαφορετική έξοδο από αυτά που πήραμε στο παράδειγμα 2. Αυτό συμβαίνει επειδή εργαζόμαστε με τον όρο NOT IN αντί για τον όρο IN.

Στην ιδανική περίπτωση, μπορείτε να προσθέσετε το NOT όποτε θέλετε να ακυρώσετε τα αποτελέσματα που λαμβάνετε με τον όρο PostgreSQL IN. Οι εφαρμογές είναι ατελείωτες. Όταν θέλετε να ελέγξετε τις τιμές και να δείτε αυτές που ταιριάζουν γρήγορα, η ρήτρα IN είναι ο καλύτερος φίλος σας.

συμπέρασμα

Ο όρος IN λειτουργεί με τον όρο WHERE για να ελέγξει μια τιμή-στόχο έναντι μιας λίστας τιμών. Ο όρος IN επιστρέφει ένα Boolean το οποίο επιβεβαιώνει εάν η τιμή στόχος έχει αντιστοιχία στη λίστα των τιμών που καθορίσατε. Μπορείτε να καθορίσετε τις τιμές ως κυριολεκτικά ή να χρησιμοποιήσετε τη δήλωση SELECT για να δημιουργήσετε ένα δευτερεύον ερώτημα προς χρήση. Δώσαμε τρεις περιπτώσεις για το πώς μπορείτε να χρησιμοποιήσετε τον όρο PostgreSQL IN. Ας ελπίσουμε ότι αυτό σας έδωσε πληροφορίες για την κατανόηση του τρόπου εργασίας με την ρήτρα PostgreSQL IN.