傳回字串) (變體,指出數字在計算出的一系列範圍內出現的位置。
語法
磁碟分割 (編號、開始、停止、間隔)
Partition 函數語法具有下列引數:
| 引數 | 描述 |
|---|---|
| 數字 | 必要。 您想要根據範圍評估的整數。 |
| 開始 | 必要。 整數,這是整體數字範圍的開頭。 這個數字不能小於 0。 |
| 停止 | 必要。 整數,即整體數字範圍的結尾。 數字不能等於或小於 start。 |
| interval | 必要。 整數,指定 在開始 與 停止) 之間 (的整體數字範圍內的分割區大小。 |
註解
Partition 函數可識別數字所在的特定範圍,並傳回描述該範圍的字串 (變體) 。 Partition 函數在查詢中最實用。 您可以建立選取查詢,顯示有多少訂單落在各種範圍內,例如,訂單值從 1 到 1000、從 1001 到 2000 等等。
下表顯示如何使用三組 開始、 停止和 間隔 引數來決定範圍。 [第一個範圍] 和 [最後一個範圍] 欄會顯示 分割區 傳回的內容。 範圍以 lowervalue:uppervalue 表示,其中範圍的低端 (lowervalue) 與範圍的高端 (上限 值) 以冒號 (:) 分開。
| 開始 | 停止 | interval | 先之前 | 第一個範圍 | 最後範圍 | 在最後一個之後 |
|---|---|---|---|---|---|---|
| 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 定義一組無法 以間隔均除的數字時的結果。 最後一個範圍延伸到 停止 (11 個數字) 即使 間隔 是 20。
如有需要, Partition 會傳回具有足夠前置空格的範圍,讓冒號左右兩邊的字元數與 Stop 加上 1 中的字元數相同。 這可確保當您將 Partition 與其他數字搭配使用時,結果的文字將會在後續的任何排序作業中得到正確處理。
如果 interval 為 1,則範圍為 number:number,不論 開始 和 停止 引數為何。 例如,如果 interval 為 1、 數字 為 100、 stop 為 1000,則 分割區 將傳回「 100: 100」。
如果有任何部分為 Null,Partition 會傳回 Null。
查詢範例
| 運算式 | 結果 |
|---|---|
| SELECT Partition (unitprice,40,240,20) AS PriceRange, count (productsales.unitprice) AS Count FROM productSales GROUP BY Partition (unitprice,40,240,20) ; | 為欄位 “unitprice” 中的值建立一組範圍,從 “start” (40) 到 “stop” (240) 具有相等的 “interval” (20) 大小,並計算各自範圍中 “unitprice” 的數量。 在 PriceRange 資料行中顯示範圍,在 'Count' 資料行中顯示計數。 |
VBA 範例
此範例假設您有一個包含 [運費] 欄位的 [訂單] 資料表。 它會建立一個選取程序,用於計算運費落在數個範圍內的每一個範圍內的訂單數目。 首先使用 Partition 函數來建立這些範圍,然後使用 SQL Count 函數計算每個範圍中的訂單數量。 在此範例中, 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);