SAP Ένωση HANA & Ένωση Όλα: OperaΠαραδείγματα tor
⚡ Έξυπνη Σύνοψη
SAP HANA OperaΤο tor εκτελεί υπολογισμούς, συγκρίσεις τιμών ή αντιστοιχίσεις τιμών μέσα στην SQL. Υπάρχουν έξι οικογένειες: μοναδιαίοι και δυαδικοί, αριθμητικοί, συμβολοσειρών, συγκριτικοί, λογικοί και τελεστές συνόλων όπως UNION και INTERSECT.

SAP HANA OperaΤο tor μπορεί να χρησιμοποιηθεί για υπολογισμό, σύγκριση τιμών ή για εκχώρηση τιμής.
SAP HANA Operaκορμοί
- Unary και Binary OperaTor
- Αριθμητική OperaTor
- Σπάγγος Operaκορμοί
- Σύγκριση OperaTor
- λογικός OperaTor
- σετ OperaTor
Κάθε τελεστής επιστρέφει μια τιμή, γι' αυτό και μπορούν να ενσωματωθούν ο ένας μέσα στον άλλον. Η σειρά με την οποία αξιολογούνται ορίζεται από την προτεραιότητα, η οποία εξηγείται μετά τις επιμέρους οικογένειες.
Unary και Binary OperaTor
| OperaTor | Operaσμού | Περιγραφή |
|---|---|---|
| Unary | Ένας τελεστής Unary ισχύει για έναν τελεστή | Μοναδικός συν τελεστής(+) Μοναδικός τελεστής άρνησης(-) Λογική άρνηση(NOT) |
| Binary | Ένα δυαδικό OperaΤο tor εφαρμόζεται σε δύο τελεστές | Πολλαπλασιαστικοί τελεστές ( *, / ) Προσθετικοί τελεστές ( +,- ) Συγκριτικοί τελεστές ( =,!=,<,>,<=,>= ) Λογικοί τελεστές ( ΚΑΙ, Ή ) |
Αριθμητική OperaTor
- Προσθήκη (+)
- Σεtracση (-)
- Πολλαπλασιασμός ( * )
- Τμήμα ( / )
Σπάγγος OperaTor
Μια χορδή OperaΤο tor είναι ένας τελεστής συνένωσης που συνδυάζει δύο στοιχεία όπως συμβολοσειρές, εκφράσεις ή σταθερές σε ένα.
Δύο κάθετες ράβδοι "||" χρησιμοποιείται ως τελεστής συνένωσης.
Σύγκριση OperaTor
Ο τελεστής σύγκρισης χρησιμοποιείται για τη σύγκριση δύο τελεστών. Παρακάτω είναι η λίστα σύγκρισης Operaβραχώδης κορυφή-
- Ίσο με ( = )
- Μεγαλύτερο από ( > )
- Less Από ( < )
- Μεγαλύτερο ή ίσο με ( >= )
- Less από ή ίσο με ( <= )
- Όχι ίσο (!= , <> )
λογικός OperaTor
Ο λογικός τελεστής χρησιμοποιείται στα κριτήρια αναζήτησης.
Π.χ. WHERE συνθήκη 1 ΚΑΙ / Ή / ΟΧΙ συνθήκη2
Παρακάτω είναι η λίστα των λογικών τελεστών –
- ΚΑΙ – (π.χ. ΟΠΟΥ συνθήκη1 ΚΑΙ συνθήκη2)
Εάν και η Συνθήκη 1 ΚΑΙ η Συνθήκη 2 είναι αληθείς, τότε η συνθήκη Συνδυασμού είναι αληθής, διαφορετικά θα είναι ψευδής. - Ή – (π.χ. ΟΠΟΥ συνθήκη1 Ή συνθήκη2)
Εάν η συνθήκη 1 Ή η συνθήκη 2 είναι αληθής, τότε η συνθήκη συνδυασμού είναι αληθής ή ψευδής εάν και οι δύο συνθήκες είναι ψευδείς. - ΟΧΙ – (π.χ. WHERE NOT συνθήκη)
Η συνθήκη NOT είναι αληθής Εάν η συνθήκη είναι ψευδής.
σετ Operaκορμοί
- ΕΝΩΣΗ – Συνδυάζει δύο ή πολλές εντολές επιλογής ή ερώτημα χωρίς διπλότυπο.
- ΕΝΩΣΗ ΟΛΩΝ – Συνδυάζει δύο ή πολλές προτάσεις ή ερωτήματα επιλογής, συμπεριλαμβανομένων όλων των διπλότυπων γραμμών.
- ΤΟΜΕΥΣΗ – Συνδυάζει δύο ή πολλές προτάσεις επιλογής ή ερώτημα και επιστρέφει όλες τις κοινές γραμμές.
- ΕΞΑΙΡΕΣΗ – Λαμβάνει την έξοδο από το πρώτο ερώτημα και αφαιρεί τη γραμμή που έχει επιλεγεί από το δεύτερο ερώτημα.
Π.χ Έχω δύο πίνακες (πίνακας 1, πίνακας 2) στους οποίους ορισμένες τιμές είναι κοινές.
Χρησιμοποιούμε τελεστή Set (Union, Union ALL, Intersect, εκτός) για αυτούς τους δύο πίνακες in SQL ως κατωτέρω -
Δημιουργία Table1- SQL Script
CREATE COLUMN TABLE DHK_SCHEMA.TABLE1 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('P'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('Q'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('R'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE1 VALUES ('T');
Δημιουργία Table2- SQL Script
CREATE COLUMN TABLE DHK_SCHEMA.TABLE2 ( ELEMENT CHAR(1), PRIMARY KEY (ELEMENT) ); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('S'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('T'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('U'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('V'); INSERT INTO DHK_SCHEMA.TABLE2 VALUES ('W');
Σημείωση: Εδώ το "DHK_SCHEMA" είναι ένα όνομα σχήματος, ο χρήστης μπορεί να αλλάξει το όνομα του σχήματος σε SQL αναλόγως.
σετ Operator Τα παραδείγματα είναι όπως παρακάτω
| OperaTor | Ερώτημα SQL | Παραγωγή | |
|---|---|---|---|
| ΕΝΩΣΗ | SELECT * ΑΠΟ ( SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE1 ΕΝΩΣΗ SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE2 ) ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΣΤΟΙΧΕΙΟ; |
Συνδυάστε το αποτέλεσμα δύο ή περισσότερων ερωτημάτων χωρίς αντίγραφο. | |
| UNION ALL | SELECT * ΑΠΟ ( SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE1 UNION ALL SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE2 ) ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΣΤΟΙΧΕΙΟ; |
Συνδυάστε το αποτέλεσμα δύο ή περισσότερων ερωτημάτων με όλα τα διπλότυπα. | |
| ΔΙΑΤΕΜΝΩ | SELECT * ΑΠΟ ( SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE1 ΔΙΑΤΕΜΝΩ SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE2 ) ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΣΤΟΙΧΕΙΟ; |
Συνδυάστε το αποτέλεσμα δύο ή περισσότερων ερωτημάτων με όλες τις κοινές σειρές. | |
| ΕΚΤΟΣ | SELECT * ΑΠΟ ( SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE1 ΕΚΤΟΣ SELECT ΣΤΟΙΧΕΙΟ ΑΠΟ DHK_SCHEMA.TABLE2 ) ΤΑΞΙΝΟΜΗΣΗ ΚΑΤΑ ΣΤΟΙΧΕΙΟ; |
Λαμβάνει έξοδο από το πρώτο ερώτημα και αφαιρεί τη σειρά που έχει επιλεγεί από το δεύτερο ερώτημα |
σετ OperaΚανόνες και Απαιτήσεις Tor
Οι τελεστές συνόλων φαίνονται απλοί, αλλά απορρίπτουν εύκολα τα ερωτήματα, επειδή συγκρίνουν ολόκληρα σύνολα αποτελεσμάτων αντί για μεμονωμένες τιμές. Τέσσερις κανόνες τους διέπουν.
- Ο αριθμός των στηλών πρέπει να ταιριάζει. Και οι δύο εντολές SELECT πρέπει να επιστρέφουν τον ίδιο αριθμό στηλών. Μια αναντιστοιχία αποτυγχάνει αμέσως και το μήνυμα ονομάζει τη θέση αντί για τη στήλη.
- Οι τύποι δεδομένων πρέπει να είναι συμβατοί. Η πρώτη στήλη του πρώτου ερωτήματος αντιστοιχίζεται με την πρώτη στήλη του δεύτερου, και ούτω καθεξής κατά θέση, όχι κατά όνομα. Οι συμβατοί αριθμητικοί τύποι μετατρέπονται αυτόματα, ενώ μια στήλη χαρακτήρων σε σχέση με μια ημερομηνία δεν μετατρέπεται.
- Τα ονόματα των στηλών προέρχονται από το πρώτο ερώτημα. Ό,τι και αν ονομάζει η δεύτερη εντολή τις στήλες της, αγνοείται στην έξοδο, κάτι που εκπλήσσει όποιον διαβάζει το αποτέλεσμα μιας ΕΝΩΣΗΣ για πρώτη φορά.
- Η ΤΑΞΙΝΟΜΗΣΗ ΜΕ ΚΑΤΑΤΑΞΗ ισχύει για ολόκληρο το αποτέλεσμα. Βρίσκεται στο τέλος, μετά το τελευταίο SELECT, και αυτός είναι ο λόγος για τον οποίο τα παραπάνω παραδείγματα τυλίγουν την ένωση σε ένα εξωτερικό SELECT.
Αξίζει να σημειωθεί η διαφορά στην απόδοση μεταξύ του UNION και του UNION ALL. Το UNION πρέπει να ταξινομήσει ή να κατακερματίσει το συνδυασμένο αποτέλεσμα για να αφαιρέσει διπλότυπα, ενώ το UNION ALL απλώς προσθέτει. Όπου τα διπλότυπα είναι αδύνατα ή αποδεκτά, το UNION ALL είναι σημαντικά ταχύτερο σε μεγάλους πίνακες. Οι ορισμοί στηλών που χρησιμοποιούνται σε αυτούς τους πίνακες καλύπτονται στο SAP Τύποι δεδομένων HANA.
OperaΠροτεραιότητα στο SAP HANA SQL
Όταν εμφανίζονται αρκετοί τελεστές σε μία παράσταση, η προτεραιότητα αποφασίζει ποιος θα αξιολογηθεί πρώτος. Η λανθασμένη αυτή ενέργεια παράγει ένα ερώτημα που εκτελείται τέλεια και επιστρέφει λάθος γραμμές, κάτι που είναι πολύ πιο επικίνδυνο από ένα συντακτικό σφάλμα.
| Order | Operaκορμοί | Κατηγορία |
|---|---|---|
| 1 | () | Οι παρενθέσεις, αξιολογούνται πάντα πρώτα |
| 2 | + – (μονός τελεστής) | Μοναδικό συν και άρνηση |
| 3 | * / | Πολλαπλασιασμός και διαίρεση |
| 4 | + – || | Πρόσθεση, υποδιαίρεσηtracση, συνένωση |
| 5 | = != < > <= >= | Σύγκριση |
| 6 | ΔΕΝ | Λογική άρνηση |
| 7 | ΚΑΙ | Λογική σύνδεση |
| 8 | OR | Λογική αποσύνδεση |
Η κλασική παγίδα βρίσκεται στις σειρές 7 και 8. Επειδή το AND συνδέεται πιο σφιχτά από το OR, η συνθήκη ΟΠΟΥ περιοχή = 'ΑΝΑΤΟΛΙΚΑ' Ή περιοχή = 'ΔΥΤΙΚΑ' ΚΑΙ κατάσταση = 'ΑΝΟΙΧΤΑ' διαβάζεται ως ΑΝΑΤΟΛΗ, ή αλλιώς ΔΥΣΗ που είναι ανοιχτήΚάθε ανατολική γραμμή επιστρέφεται ανεξάρτητα από την κατάστασή της. Η προσθήκη παρενθέσεων γύρω από τις δύο δοκιμές περιοχής διορθώνει το πρόβλημα.
💡 Συμβουλές: Γράψτε παρενθέσεις γύρω από κάθε μικτή συνθήκη AND και OR, ακόμα και όταν η προτεραιότητα δίνει ήδη το επιδιωκόμενο αποτέλεσμα. Το ερώτημα γίνεται αυτο-τεκμηριούμενο και επιβιώνει από μεταγενέστερες επεξεργασίες από άλλον προγραμματιστή.
Η σύνταξη καθημερινών δηλώσεων καλύπτεται στο SAP HANA SQL εκπαιδευτικό σεμινάριο και την ευρύτερη πλατφόρμα στο SAP Εκπαιδευτικό σεμινάριο HANA σειρές.





