Gibt einen Wert vom Typ Variant (String) zurück, der angibt, wo eine Zahl innerhalb einer berechneten Folge von Bereichen auftritt.
Syntax
Partition(Number, start, stop, interval)
Die Syntax der Funktion Partition weist die folgenden Argumente auf:
| Argument | Beschreibung |
|---|---|
| Zahl | Erforderlich. Ganze Zahl, für die Sie den zugehörigen Bereich ermitteln möchten. |
| Startwert | Erforderlich. Eine ganze Zahl, die den Anfang des Zahlenbereichs insgesamt bildet. Die Zahl darf nicht kleiner als 0 sein. |
| Endwert | Erforderlich. Ganze Zahl, die das Ende des Zahlenbereichs insgesamt bildet. Die Zahl darf nicht gleich oder kleiner als start sein. |
| Intervall | Erforderlich. Ganze Zahl, die die Größe der Partitionen innerhalb des gesamten Zahlenbereichs (zwischen Start und Stopp) angibt. |
Hinweise
Die Partitionsfunktion identifiziert den bestimmten Bereich, in den die Zahl fällt, und gibt einen Variant (String) zurück, der diesen Bereich beschreibt. Die Partition-Funktion eignet sich am besten für Abfragen. Sie können eine Auswahlabfrage erstellen, die zeigt, wie viele Bestellungen in verschiedenen Bereichen enthalten sind, z. B. Bestellwerte von 1 bis 1000, 1001 bis 2000 und so weiter.
Die folgende Tabelle zeigt, wie die Bereiche mithilfe von drei Sätzen von Start-, Stopp- und Intervallargumenten bestimmt werden. Die Spalten "Erster Bereich" und "Letzter Bereich" zeigen, was Partition zurückgibt. Die Bereiche werden durch lowervalue:uppervalue dargestellt, wobei das untere Ende (unterwert) des Bereichs vom oberen Ende (uppervalue) des Bereichs mit einem Doppelpunkt (:) getrennt wird.
| Starten | Stoppen | Intervall | Vor dem Ersten | Erster Bereich | Letzter Bereich | Nach dem Letzten |
|---|---|---|---|---|---|---|
| 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: " |
In der oben gezeigten Tabelle zeigt die dritte Zeile das Ergebnis an, wenn start und stop eine Reihe von Zahlen definiert wird, die nicht gleichmäßig durch Intervall geteilt werden können. Der letzte Bereich erstreckt sich bis zum Beenden (11 Zahlen), obwohl das Intervall 20 ist.
Bei Bedarf gibt Partition einen Bereich mit ausreichend führenden Leerzeichen zurück, sodass links und rechts neben dem Doppelpunkt die gleiche Anzahl von Zeichen vorhanden ist, wie die Zeichen in stop plus eins. Dadurch wird sichergestellt, dass bei Verwendung von Partition mit anderen Zahlen der sich daraus ergebende Text bei nachfolgenden Sortiervorgängen ordnungsgemäß behandelt werden.
Wenn interval 1 ist, ist der Bereich zahl:zahl, unabhängig von den Start - und Stoppargumenten . Wenn Intervall z. B. 1, Zahl 100 und Stop 1000 ist, gibt Partition " 100: 100" zurück.
Wenn ein Teil ist Null, gibt Partition eine Null zurück.
Abfragebeispiele
| Ausdruck | Ergebnisse |
|---|---|
| SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); | Erstellt einen Satz von Bereichen für die Werte im Feld "unitprice" von "start"(40) bis "stop"(240) mit der gleichen "interval"(20)-Größe und berechnet die Anzahl von "unitprice" in den entsprechenden Bereichen. Zeigt die Bereiche in der Spalte PriceRange und count in spalte 'Count' an. |
VBA-Beispiel
In diesem Beispiel wird davon ausgegangen, dass Sie über eine Orders-Tabelle verfügen, die ein Frachtfeld enthält. Es wird eine Auswahlprozedur erstellt, die die Anzahl der Aufträge zählt, für die die Frachtkosten in jeden von mehreren Bereichen fallen. Die Partitionsfunktion wird zuerst verwendet, um diese Bereiche festzulegen, dann zählt die SQL-Anzahl-Funktion die Anzahl der Bestellungen in jedem Bereich. In diesem Beispiel lauten die Argumente für die Partitionsfunktionstart = 0, stop = 500, interval = 50. Der erste Bereich wäre daher 0:49 und so weiter bis zu 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);