Partition 函数

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

返回字符串 (变体) , 指示数字在计算出的一系列范围内的位置。

语法

分区 (号、启动、停止、间隔)

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);