Partition 函数

应用对象
Microsoft 365 专属 Access Access 2024 Access 2021 Access 2019 Access 2016

返回一个 Variant (String) 指示数字在计算序列中的位置。

语法

分区 (编号、开始、停止、间隔)

Partition 函数语法具有以下参数:

参数 说明
数量 必需。 要根据范围计算的整数。
开始 必需。 整数,即整个数字范围的开头。 数字不能小于 0。
停止 必需。 整数,即整个数字范围的末尾。 该数字不能等于或小于 start
interval 必需。 指定 在开始停止) 之间 (整个数字范围内的分区大小的整数。

备注

Partition 函数标识数字下降的特定范围,并返回描述该范围的 Variant (String) 。 Partition 函数在查询中非常有用。 可以创建一个选择查询来显示不同范围内的订单数量,例如,从 1 到 1000、1001 到 2000 的订单值,等等。

下表显示了如何使用三组 startstopinterval 参数来确定范围。 “第一个范围”和“最后一个范围”列显示 Partition 返回的内容。 范围由 lowervalueuppervalue 表示,其中,范围的低端 (低值) 与具有冒号 ( (的范围的 高端 (上限 值) 分隔 开来:) 。

开始 停止 interval Before First 第一个范围 最后一个范围 在最后一个之后
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: "

在上面显示的表中,第三行显示 开始停止 定义一组不能均匀除以 间隔的数字时的结果。 最后一个范围扩展到 停止 (11 个数字) 即使 间隔 为 20。

如有必要, Partition 将返回一个具有足够前导空格的区域,以便冒号的左侧和右侧的字符数与 停止号中的字符数相同,加一个字符。 这可确保如果将 Partition 与其他数字一起使用,则将在任何后续排序操作期间正确处理生成的文本。

如果 interval 为 1,则范围为 number:number,而不考虑 startstop 参数。 例如,如果 interval1,number 为 100,stop 为 1000,则 Partition 返回“100:100”。

如果任一部分为 Null, 则 Partition 返回 Null

查询示例

Expression 结果
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 示例

此示例假定你有一个包含 Freight 字段的 Orders 表。 它创建一个选择过程,用于计算货运成本属于多个范围的订单数。 首先使用 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);