Vrátí hodnotu typu Variant (String), která udává, kde se číslo nachází v počítané řadě oblastí.
Syntaxe
Partition(číslo, začátek, konec, interval)
Syntaxe funkce Partition obsahuje tyto argumenty:
| Argument | Popis |
|---|---|
| číslo | Povinný argument. Celé číslo, které chcete vyhodnotit oproti oblastem hodnot. |
| začátek | Povinný argument. Celé číslo, které je začátkem celkové oblasti čísel. Číslo nesmí být menší než 0. |
| stop | Povinný argument. Celé číslo, které je koncem celkové oblasti čísel. Číslo se nemůže rovnat nebo být menší než začátek. |
| interval | Povinný argument. Celé číslo, které určuje velikost oddílů v celkovém rozsahu čísel (mezi start a stop). |
Poznámky
Funkce Partition identifikuje konkrétní oblast, do které číslo spadá, a vrátí hodnotu typu Variant (String) popisující tento rozsah. Funkce Partition je nejužitečnější v dotazech. Můžete vytvořit výběrový dotaz, který zobrazí, kolik objednávek spadá do různých rozsahů, například hodnoty objednávek od 1 do 1000, od 1 001 do 2000 atd.
Následující tabulka ukazuje, jak se rozsahy určují pomocí tří sad argumentů začátek, konec a interval . Sloupce První rozsah a Poslední rozsah ukazují, co oddíl vrátí. Rozsahy jsou reprezentovány jako lowervalue:uppervalue, kde dolní konec (lowervalue) rozsahu je oddělen od horní (uppervalue) rozsahu dvojtečkou (:).
| spustit | stop | interval | Před První | První rozsah | Poslední rozsah | Po posledním |
|---|---|---|---|---|---|---|
| 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: " |
Třetí řádek ve výše uvedené tabulce zobrazuje výsledek, když argumenty začátek a konec definují množinu čísel, které nelze rovnoměrně dělit intervalem. Poslední rozsah sahá až do zarážky (11 čísel), i když je interval 20.
V případě potřeby vrátí funkce Partition oblast s dostatečným počtem úvodních mezer, takže vlevo a vpravo od dvojtečky bude stejný počet znaků, kolik je znaků v řetězci stop plus jedna. Tím zajistíte, že pokud použijete funkci Rozdělit s jinými čísly, bude výsledný text správně zpracován během jakékoli následné operace řazení.
Pokud je interval 1, rozsah je číslo:číslo, bez ohledu na argumenty začátek a konec . Pokud je například interval 1, číslo je 100 a stop je 1000, vrátí funkce Partition " 100: 100".
Pokud má některá část hodnotu Null, vrátí funkce Partition hodnotu Null.
Příklady dotazů
| Výraz | Výsledky: |
|---|---|
| SELECT Partition(unitprice,40,240,20) AS PriceRange, count(productsales.unitprice) AS Count FROM productSales GROUP BY Partition(unitprice,40,240,20); | Vytvoří sadu rozsahů pro hodnoty v poli "jednotkovácena" od "začátek"(40) do "stop"(240) se stejnou velikostí "interval"(20) a vypočítá počet "jednotkovácena" v příslušných rozmezích. Zobrazí rozsahy ve sloupci PriceRange a count ve sloupci Count. |
Příklad jazyka VBA
V tomto příkladu se předpokládá, že máte tabulku Objednávky, která obsahuje pole Dopravné. Vytvoří výběrovou proceduru, která spočítá počet objednávek, u kterých náklady na dopravu spadají do každého z několika rozsahů. Funkce Partition se použije jako první k vytvoření těchto rozsahů a pak funkce SQL Count spočítá počet objednávek v každém rozsahu. V tomto příkladu jsou argumenty funkce Partition start = 0, stop = 500, interval = 50. První rozsah by tedy byl 0:49 a tak dále až do 500.
SELECT DISTINCTROW Partition([freight],0, 500, 50) AS Range,
Count(Orders.Freight) AS Count
FROM Orders
GROUP BY Partition([freight],0,500,50);