Λειτουργία SQL Server LEAD().

Leitourgia Sql Server Lead



Σε αυτό το άρθρο, θα σας καθοδηγήσουμε στις βασικές αρχές της εργασίας με τη συνάρτηση lead() στον SQL Server. Θα καλύψουμε τι κάνει η συνάρτηση, τη σύνταξή της και πρακτικά παραδείγματα για τον τρόπο χρήσης της.

Λειτουργία οδηγού SQL Server

Η συνάρτηση lead στον SQL Server είναι μια αναλυτική συνάρτηση που σας επιτρέπει να έχετε πρόσβαση σε δεδομένα από μια επόμενη σειρά στο ίδιο σύνολο αποτελεσμάτων χωρίς αυτοσύνδεση.

Η συνάρτηση σάς δίνει τη δυνατότητα πρόσβασης σε μια σειρά σε μια δεδομένη μετατόπιση που προηγείται της τρέχουσας σειράς. Για παράδειγμα, χρησιμοποιώντας τη συνάρτηση lead, μπορείτε να βρείτε τη σειρά αμέσως μετά την τρέχουσα σειρά, τη 10η σειρά από την τρέχουσα σειρά κ.λπ.







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



Συντακτικό συνάρτησης

Τα ακόλουθα απεικονίζουν τη σύνταξη της συνάρτησης lead() στον SQL Server:



LEAD (scalar_expression [ ,offset ] , [ default ] )
OVER ( [ partition_by_clause ] order_by_clause )

Η επόμενη λίστα είναι τα υποστηριζόμενα ορίσματα και η λειτουργικότητά τους:





  1. scalar_expression – αυτό το όρισμα υποδηλώνει την επιστρεφόμενη τιμή με βάση την καθορισμένη μετατόπιση. Αυτή μπορεί να είναι μια έκφραση οποιουδήποτε τύπου που επιστρέφει μια μεμονωμένη τιμή. Ωστόσο, η τιμή του scalar_expression δεν μπορεί να είναι μια άλλη συνάρτηση αναλυτικής/παραθύρου.
  2. μετατόπιση – ορίζει πόσες σειρές από την τρέχουσα θέση σειράς η τιμή που ανακτήθηκε. Από προεπιλογή, η συνάρτηση θα φέρει τη σειρά που είναι αμέσως επίθετο στην τρέχουσα σειρά. Ομοίως, η τιμή της παραμέτρου μετατόπισης δεν μπορεί να είναι αναλυτική συνάρτηση ή αρνητικός ακέραιος.
  3. προεπιλογή – αυτή η παράμετρος ορίζει την προεπιλεγμένη τιμή εάν η παρεχόμενη τιμή μετατόπισης υπερβαίνει το πεδίο εφαρμογής του διαμερίσματος προορισμού. Από προεπιλογή, η συνάρτηση θα επιστρέψει NULL.
  4. PARTITION BY – η ρήτρα partition_by ορίζει τους κανόνες που διαιρούν το σύνολο των αποτελεσμάτων σε διάφορες ενότητες. Στη συνέχεια, η συνάρτηση εφαρμόζεται σε κάθε διαμέρισμα που προκύπτει.
  5. ORDER BY – αυτό ορίζει τη λογική σειρά με την οποία εφαρμόζονται οι σειρές σε κάθε διαμέρισμα.

Η συνάρτηση επιστρέφει τον τύπο δεδομένων που ορίζεται στο scalar_expression. Εάν η τιμή που επιστρέφεται είναι NULL, η συνάρτηση επιστρέφει NULL.

Δειγμα δεδομένων

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



ΑΠΟΣΤΟΛΗ ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ ΑΝ ΥΠΑΡΧΕΙ απόθεμα.

ΔΗΜΙΟΥΡΓΙΑ αποθέματος ΒΑΣΗΣ ΔΕΔΟΜΕΝΩΝ.

ΧΡΗΣΗ αποθέματος.

DOP TABLE ΑΝ ΥΠΑΡΧΕΙ προϊόντα.

ΔΗΜΙΟΥΡΓΙΑ ΤΡΑΠΕΖΙΩΝ προϊόντων (
id int ταυτότητα πρωτεύον κλειδί όχι null,
όνομα_προϊόντος varchar(100),
κατασκευαστής varchar(50),
η ποσότητα δεν είναι μηδενική,
τιμή int προεπιλεγμένη 0,
in_stock bit
)
εισαγωγή σε προϊόντα (όνομα_προϊόντος, κατασκευαστής, ποσότητα, τιμή, σε απόθεμα)
τιμές ('Apple iPad Air', 'Apple', 100, 569,99, 1),
('Samsung Galaxy Z Flip 4', 'Samsung', 302, 1569.00, 1)
('Sony Playstation 5', 'Sony',  500, 499.99, 1),
('Samsung Galaxy Watch-5 Pro', 'Samsung', 600, 209/.99, 1),
('Apple Watch Series 6', 'Apple', 459, 379.90, 1)
('Apple AirPods Pro', 'Apple', 200, 199.99, 1),
('55' Class S95B OLED 4K Smart TV', 'Samsung', 900, 1999.90, 1),
('Odyssey Ark Quantum Mini-LED Curved Gaming Screen', 'Samsung', 50, 2999.90, 1);

Ο πίνακας που προκύπτει είναι όπως φαίνεται:

Παράδειγμα 1 – Χρήση της συνάρτησης lead() του SQL Server σε ένα σύνολο αποτελεσμάτων

Το παρακάτω παράδειγμα χρησιμοποιεί τη συνάρτηση lead() για να επιστρέψει την τιμή του επόμενου προϊόντος.

επιλέγω
Ονομασία προϊόντος,
κατασκευαστής,
ποσότητα,
τιμή,
μόλυβδος (τιμή,
1) πάνω από (
παραγγελία ανά ποσότητα)
από
προϊόντα;

Πίνακας αποτελεσμάτων:

Δεδομένου ότι δεν υπάρχει γραμμή από την τελευταία στήλη, η συνάρτηση επιστρέφει NULL.

Παράδειγμα 2 – Χρήση της συνάρτησης lead() του SQL Server σε ένα σύνολο διαμερισμάτων

Μπορούμε επίσης να φέρουμε το επόμενο προϊόν σε ένα δεδομένο διαμέρισμα. Για παράδειγμα, μπορούμε να χωρίσουμε τα παραπάνω δεδομένα με βάση τον κατασκευαστή και να εφαρμόσουμε τη συνάρτηση lead() σε κάθε διαμέρισμα

Ένα παράδειγμα απεικόνισης είναι όπως φαίνεται:

επιλέγω
Ονομασία προϊόντος,
κατασκευαστής,
ποσότητα,
τιμή,
μόλυβδος (τιμή,
1) πάνω από (
κατάτμηση κατά κατασκευαστή
παραγγελία ανά ποσότητα)
από
προϊόντα;

Το παραπάνω ερώτημα θα πρέπει να διαιρεί τις σειρές με βάση τον κατασκευαστή και να φέρει την επόμενη τιμή για τις τιμές σε κάθε διαμέρισμα.

Σε αυτήν την περίπτωση, υπάρχουν τρία διαμερίσματα.

συμπέρασμα

Σε αυτήν την ανάρτηση, κατανοήσατε τα δομικά στοιχεία της συνάρτησης lead() στον SQL Server. Μάθατε επίσης πώς να χρησιμοποιείτε τη συνάρτηση lead() σε ένα σύνολο αποτελεσμάτων και διαμερισμάτων.