Επιστρέφει μια Variant (String) η οποία υποδεικνύει πού εμφανίζεται ένας αριθμός μέσα σε μια υπολογισμένη σειρά διαστημάτων.
Σύνταξη
Partition(number, start, stop, interval)
Η σύνταξη της συνάρτησης Partition έχει τα εξής επώνυμα ορίσματα:
Μέρος Περιγραφή
number Απαιτείται. Ακέραιος αριθμός ο οποίος θέλετε να αποτιμηθεί έναντι των διαστημάτων.
start Απαιτείται. Ακέραιος, ο οποίος είναι η αρχή του συνολικού διαστήματος των αριθμών. Ο αριθμός δεν μπορεί να είναι μικρότερος από το 0.
stop Απαιτείται. Ακέραιος, ο οποίος είναι το τέλος του συνολικού διαστήματος αριθμών. Ο αριθμός δεν μπορεί να είναι ίσος ή μικρότερος από τον start.
interval Απαιτείται. Ακέραιος, ο οποίος εκφράζει την περιοχή που καλύπτει κάθε διάστημα στη σειρά από το start μέχρι το stop. Ο αριθμός δεν μπορεί να είναι μικρότερος από το 1.
Παρατηρήσεις
Η συνάρτηση Partition καθορίζει το συγκεκριμένο διάστημα στο οποίο ανήκει το number και επιστρέφει μια Variant (String) που περιγράφει αυτό το διάστημα. Η συνάρτηση Partition είναι πολύ χρήσιμη στα ερωτήματα. Μπορείτε να δημιουργήσετε ένα ερώτημα επιλογής που θα δείχνει πόσες παραγγελίες εμπίπτουν σε διάφορα διαστήματα (περιοχές τιμών), όπως για παράδειγμα, τιμές παραγγελιών από 1 έως 1000, από 1001 έως 2000, κ.ο.κ.
Ο παρακάτω πίνακας δείχνει πώς γίνεται η διαπίστωση των διαστημάτων. Η επίδειξη γίνεται με χρήση τριών συνόλων από τα μέρη start, stop, και interval. Οι στήλες Πρώτο Διάστημα και Τελευταίο Διάστημα δείχνουν τι επιστρέφει η Partition. Τα διαστήματα απεικονίζονται στη μορφή κατώτατη_τιμή:ανώτατη_τιμή, όπου το κατώτατο όριο του διαστήματος χωρίζεται από το ανώτατο όριο του διαστήματος με άνω και κάτω τελεία (:).
αρχή τέλος μήκος Πριν το πρώτο Πρώτο διάστημα Τελευταίο Διάστημα Μετά το Τελευταίο
0 99 5 " :-1" " 0: 4" " 95: 99" " 100: "
20 199 10 " : 19" " 20: 29" " 190: 199" " 200: "
100 1010 20 " : 99" " 100: 119" " 1000: 1010" " 1011: "
Στον ανωτέρω πίνακα η τρίτη γραμμή δείχνει το αποτέλεσμα όταν το start και το stop ορίζουν ένα σύνολο αριθμών που δεν μπορεί να διαιρεθεί από το interval σε ίσα μέρη. Το τελευταίο διάστημα εκτείνεται μέχρι το stop(11 αριθμοί) παρ’ όλο που το interval είναι 20.
Εάν είναι απαραίτητο, η Partition επιστρέφει ένα διάστημα με αρκετά κενά στην αρχή, ώστε να υπάρχει ο ίδιος αριθμός χαρακτήρων στα αριστερά και στα δεξιά της άνω και κάτω τελείας όσοι είναι και οι χαρακτήρες στο stop, συν ένας. Αυτό διασφαλίζει ότι εάν χρησιμοποιηθεί η Partition με άλλους αριθμούς, το κείμενο που θα προκύψει θα χρησιμοποιηθεί όπως πρέπει σε κάθε μελλοντική λειτουργία ταξινόμησης.
Εάν το interval είναι 1, το διάστημα είναι number:number, ανεξάρτητα από την τιμή του start και του stop. Για παράδειγμα, εάν το interval έχει την τιμή 1, το number 100 και το stop 1000, η Partition επιστρέφει " 100: 100".
Εάν κάποιο μέρος έχει τιμή Null, η Partition επιστρέφει Null.
Στο παράδειγμα αυτό γίνεται η υπόθεση ότι έχετε ένα πίνακα Orders (Παραγγελίες) ο οποίος περιέχει ένα πεδίο Freight (Ναύλος). Δημιουργείται μια διαδικασία επιλογής που καταμετρά τον αριθμό των παραγγελιών για τις οποίες το κόστος ναύλωσης ανήκει σε ένα από διάφορα διαστήματα. Πρώτα χρησιμοποιείται η συνάρτηση Partition για τον καθορισμό αυτών των διαστημάτων και κατόπιν η συνάρτηση Count της SQL μετρά τον αριθμό των παραγγελιών που εμπίπτουν σε κάθε διάστημα. Στο παράδειγμα αυτό, τα ορίσματα στη συνάρτηση Partition είναι start = 0, stop = 500, interval = 50. Το πρώτο διάστημα, κατά συνέπεια, θα ήταν 0:49, κ.ο.κ έως το 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);