返回字符串 (变体) , 指示数字在计算出的一系列范围内的位置。
语法
分区 (号、启动、停止、间隔)
Partition 函数语法具有以下参数:
| 参数 | 说明 |
|---|---|
| 编号 | 必需。 要根据范围求值的整数。 |
| start | 必需。 作为整个数字范围的起始的整数。 数字不能小于 0。 |
| stop | 必需。 整数,即整个数字范围的结束。 数字不能等于或小于 start。 |
| interval | 必需。 整数,用于指定 在开始 和 停止) 之间 (的整个数字范围内的分区大小。 |
备注
Partition 函数标识数字所属的特定范围,并返回描述该范围 (字符串变体) 。 Partition 函数在查询中最有用。 可以创建一个选择查询来显示各种范围内的订单数,例如,订单值从 1 到 1000、1001 到 2000 等。
下表显示如何使用三组 start、 stop 和 interval 参数确定范围。 “第一个范围”和“最后一个范围”列显示分 区 返回的内容。 这些范围由 lowervalue:uppervalue 表示,其中范围的低端 (lowervalue) 与范围的高端 (上限) 分开,并带有冒号 (:) 。
| start | stop | 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,而不考虑 start 和 stop 参数。 例如,如果 interval 为 1,number 为 100,stop 为 1000,则分区返回“ 100: 100”。
如果任何部分为 Null,Partition 将返回 Null。
查询示例
| Expression | 结果 |
|---|---|
| SELECT 分区 (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 示例
此示例假设 Orders 表包含 Freight 字段。 它创建了一个选择过程,用于计算运费属于多个范围中每个范围的订单数。 首先使用 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);