Όταν γράφετε ερωτήματα sql, εμφανίζεται συχνάμια κατάσταση κατά την οποία, κατά τη λήψη δεδομένων, είναι απαραίτητο να συγκρίνετε τις τιμές πολλών στηλών και να εμφανίσετε αυτήν που περιέχει τα δεδομένα (όχι κενή). Η έκφραση Coalesce λύνει αυτό το πρόβλημα τέλεια. Σε αυτό το άρθρο, θα βρείτε μια πλήρη περιγραφή της έκφρασης Coalesce sql, μια περιγραφή των χαρακτηριστικών της χρήσης του, καθώς και παραδείγματα.
Έξοδος μη κενών τιμών με το Coalesce. Χαρακτηριστικά:
Εξετάστε τις δυνατότητες χρήσης της Sql Coalesce:
- Επιτρέπει τον καθορισμό οποιουδήποτε αριθμού ορισμάτων (σε αντίθεση με το Isnull / Nvl / Nvl2, τα οποία έχουν περιορισμένο αριθμό ορισμάτων).
- Μπορεί να λαμβάνει υποερωτήματα ως επιχείρημα.
- Επιστρέφει αποτέλεσμα ίσο με ο πρώτος μια μη μηδενική τιμή ή μηδενική αν δεν βρεθεί μη μηδενική τιμή.
- Το Sql Coalesce μπορεί να χρησιμοποιηθεί σε μια ρήτρα Select για να επιλέξει μια μη κενή τιμή, καθώς και σε ένα σημείο όπου να διευκρινιστεί ότι ένα σύνολο στηλών με κενές τιμές δεν επιτρέπεται (/ επιτρέπεται).
- Αυτή η έκφραση είναι η ίδια με τη χρήση της έκφρασηςΠερίπτωση, η οποία ελέγχει κάθε όρισμα διαδοχικά για την κατάσταση Όταν το όρισμα 1 δεν είναι μηδέν, τότε το όρισμα1. Βασικά, το Coalesce είναι μια συντόμευση που δημιουργήθηκε για ευκολία στη χρήση και σε πολλά DBMS, οι βελτιστοποιητές ερωτήσεων ξαναγράφουν την έκφραση Coalesce στο Case.
- Οι συναρτήσεις Sql Coalesce βρίσκονται σε όλα τα κορυφαία συστήματα σχεσιακής διαχείρισης βάσεων δεδομένων.
Σύνταξη συγχώνευσης
Όποιος έχει χρησιμοποιήσει ποτέ το Coalesce στοσυνθέτοντας sql-queries, γνωρίζει ότι η σύνταξη αυτής της έκφρασης είναι εξαιρετικά απλή. Αρκεί να προσδιορίσετε τα ορίσματα που ελέγχθηκαν για το Null σε παρενθέσεις, διαχωρισμένα με κόμματα. Εάν υποθέσουμε ότι τα ορίσματα ονομάζονται arg1, arg2,… argN, τότε η σύνταξη για το Coalesce θα έχει ως εξής:
Coalesce (arg1, arg2, ... argN).
Ας προετοιμάσουμε αρκετούς πίνακες για να μελετήσουμε τον μηχανισμό αυτής της έκφρασης.
Προετοιμασία πινάκων
Για να κατανοήσουμε καλύτερα την περιγραφή της Coalesce sql, ας δημιουργήσουμε δύο πίνακες που περιέχουν πληροφορίες για αντικείμενα ακινήτων στη βάση δεδομένων.
Αφήστε τον πρώτο πίνακα, Περιοχή, να περιέχει τα ονόματα των ακινήτων και την περιοχή τους. Η περιοχή μπορεί να καθοριστεί (area_yt) ή να δηλωθεί (area_decl).
ταυτότητα | όνομα_αντικειμένου | area_yt | περιοχή_απόκλιση |
1 | Κτίριο 1 | 116,2 | 114 |
2 | Σε εξέλιξη η κατασκευή 1 | 568 | |
3 | Δωμάτιο 1 | 64,7 | |
4 | Δωμάτιο 2 | 34,2 | |
5 | Οικόπεδο 1 | 112 | 111,6 |
6 | Κτίριο 1 | ||
7 | Δωμάτιο 3 | 27,9 | |
8 | Κτίριο 2 | 37,2 | 36,4 |
9 | Κτίριο 2 |
Ο δεύτερος βασικός_χαρακτηριστικός πίνακας αςπεριέχει πληροφορίες για τα κύρια χαρακτηριστικά του ακινήτου - Επέκταση, Βάθος, Περιοχή, Πεδίο εφαρμογής, ightψος.
ταυτότητα | όνομα_αντικειμένου | Επέκταση | Βάθος | Περιοχή | Πεδίο εφαρμογής | Υψος |
1 | Κτίριο 1 | 892,4 | 30 | |||
2 | Κτίριο 2 | 48 | ||||
3 | Κτίριο 1 | 164,7 | ||||
4 | Οικόπεδο 1 | |||||
5 | Δωμάτιο 1 | 23,6 | ||||
6 | Δωμάτιο 2 | 34,7 | ||||
7 | Δωμάτιο 3 | 19,8 |
Εξετάσαμε τη σύνταξη του Coalesce sql, την περιγραφή, τα χαρακτηριστικά χρήσης και ας πάμε κατευθείαν στα παραδείγματα.
Παραδείγματα χρήσης
Η σύνταξη για την έκφραση Coalesce είναι εξαιρετικά απλή,Ωστόσο, είναι σημαντικό να θυμόμαστε ότι η εντολή θα επιστρέψει την ΠΡΩΤΗ μη κενή τιμή που βρίσκεται στη λίστα επιχειρημάτων. Αυτή η παρατήρηση είναι πολύ σημαντική, επομένως τα επιχειρήματα στην έκφραση πρέπει να ταξινομηθούν κατά σειρά σπουδαιότητας. Ο ευκολότερος τρόπος για να κατανοήσετε την αρχή είναι από τον πίνακα περιοχής. Κάντε ένα ερώτημα που επιλέγει το όνομα της ιδιότητας, καθώς και την αξία της περιοχής:
SELECT Area.id, Area.object_name, coalesce (Area.area_yt, Area.area_decl) ΑΠΟ Περιοχή |
Και πάρτε το αποτέλεσμα:
ταυτότητα | όνομα_αντικειμένου | Συναυξάνω |
1 | Κτίριο 1 | 116,2 |
2 | Σε εξέλιξη η κατασκευή 1 | 568 |
3 | Δωμάτιο 1 | 64,7 |
4 | Δωμάτιο 2 | 34,2 |
5 | Οικόπεδο 1 | 112 |
6 | Κτίριο 1 | |
7 | Δωμάτιο 3 | 27,9 |
8 | Κτίριο 2 | 37,2 |
9 | Κτίριο 2 |
Για τα αντικείμενα "Κτίριο 1", "Οικόπεδο 1" και"Κτίριο 2", και οι δύο τιμές της περιοχής συμπληρώθηκαν, αλλά προτεραιότητα ήταν η περιοχή που καθορίστηκε, αφού την καθορίσαμε πρώτα στη λίστα των ορισμάτων. Η έκφραση Coalesce βρήκε την πρώτη μη κενή τιμή και την έριξε, σταματώντας περαιτέρω σαρώσεις επιχειρημάτων. Αυτή η κατασκευή ερωτήματος είναι σωστή, επειδή η καθορισμένη περιοχή είναι πιο συγκεκριμένη από την δηλωμένη. Εάν είχαμε ορίσει τη δήλωση περιοχής ως το πρώτο όρισμα, τότε όταν συμπληρώθηκε αυτό το πεδίο του πίνακα, θα είχε προτεραιότητα.
Εκτός από τη χρήση στο Select, πολύ συχνάη έκφραση Coalesce εφαρμόζεται με μια ρήτρα Where. Σας επιτρέπει να αποκόψετε από το αποτέλεσμα τις γραμμές στις οποίες οι τιμές της λίστας πεδίων είναι κενές (ή αντίστροφα, να συμπεριλάβετε στο αποτέλεσμα μόνο εκείνες τις τιμές όπου η λίστα των πεδίων είναι κενή). Αυτή η κατάσταση συμβαίνει παντού: για παράδειγμα, στην επιχείρηση, κατά την εγγραφή ενός νέου υπαλλήλου, μόνο οι βασικές πληροφορίες για αυτόν καταχωρήθηκαν στη βάση δεδομένων και η συμπλήρωση των λεπτομερών πληροφοριών έμεινε "για αργότερα". Σταδιακά εμφανίζονται "κενά" - είτε πριν από τον έλεγχο, είτε κατά την αποστολή εργαζομένου σε διακοπές / επαγγελματικό ταξίδι / αναρρωτική άδεια.
Ας επιλέξουμε από τον πίνακα με τα κύρια χαρακτηριστικά αντικείμενα ακινήτων για τα οποία δεν συμπληρώνεται καμία από τις χαρακτηριστικές τιμές:
SELECT id, object_name ΑΠΟ Βασικό_χαρακτηριστικό Όπου η συνένωση (Επέκταση, Βάθος, Περιοχή, Πεδίο εφαρμογής, ightψος) είναι μηδενική |
Για αυτό το ερώτημα, υπάρχει μία αντιστοίχιση στον πίνακα - το αντικείμενο "Οικόπεδο 1", στο οποίο όλα τα πεδία με χαρακτηριστικά είναι κενά:
ταυτότητα | όνομα_αντικειμένου |
4 | Οικόπεδο 1 |
Ελπίζουμε ότι η λεπτομερής περιγραφή Coalesce sql σας βοήθησε να κατανοήσετε όλα τα χαρακτηριστικά χρήσης αυτής της έκφρασης, καθώς και να αντιμετωπίσετε σημαντικές αποχρώσεις.