Gibt einen Wert vom Typ Variant (String) zurück, der angibt, wo eine Zahl innerhalb einer berechneten Folge von Bereichen auftritt.
Syntax
Partition( Zahl, Startwert, Endwert, Intervall)
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 Anzahl darf nicht gleich oder kleiner als Startwert sein. |
Intervall |
Erforderlich. Ganze Zahl, die die Größe der Partitionen innerhalb des Gesamtzahlenbereichs angibt (zwischen Startwert und Endwert). |
Hinweise
Die Partition-Funktion kennzeichnet denjenigen Bereich, in dem Zahl liegt, und gibt einen Wert vom Typ Variant (String) zurück, die 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 anhand von drei Startwert-, Endwert- und Intervall-Argumenten, wie die Bereiche 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 (lowervalue) des Bereichs vom oberen Ende (uppervalue) des Bereichs mit einem Doppelpunkt (:) getrennt ist.
Startwert |
Endwert |
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 vorstehenden Tabelle zeigt die dritte Zeile das Ergebnis, wenn Startwert und Endwert eine Reihe von Zahlen definieren, die nicht glatt durch Intervall geteilt werden können. Der letzte Bereich reicht bis zum Endwert (11 Zahlen), obwohl Intervall "20" lautet.
Bei Bedarf gibt Partition einen Bereich mit genügend führenden Leerzeichen zurück, sodass links und rechts vom Doppelpunkt die gleiche Anzahl von Zeichen wie im Endwert, plus eins, stehen. Dadurch wird sichergestellt, dass bei Verwendung von Partition mit anderen Zahlen der sich daraus ergebende Text bei nachfolgenden Sortiervorgängen ordnungsgemäß behandelt werden.
Wenn Intervall 1 ist, lautet der Bereich Zahl: Zahl, und zwar unabhängig vom Startwert- und Endwert-Argument. Wenn z. B. Intervall 1, Zahl 100 und Endwert 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);