OCCURS( ) 函数

返回指定字符值中子串出现次数的计数。

语法

OCCURS(字符串搜索内容

参数

名称 类型 描述
字符串

字符

在其中进行搜索的值。

如果您想要在表中的一个以上的域中搜索,则可以连接两个或更多个域:

OCCURS(First_Name+Last_Name,"John")
搜索内容

字符

要搜索的值。该搜索区分大小写。

输出

数值。

示例

基本示例

返回 2:

OCCURS("abc/abc/a","ab")

返回 3:

OCCURS("abc/abc/a","a")

返回连字符在发票编号域的每个值中出现的次数:

OCCURS(发票编号, "-")

高级示例

查找具有一个以上连字符的发票编号

如果表中的发票编号应该只有一个连字符,请使用 OCCURS( ) 函数创建一个过滤器,以分离具有两个或更多个连字符的发票编号:

SET FILTER TO OCCURS(发票编号, "-") > 1

查找一个域的值在另一个域中的实例

使用 OCCURS( ) 可查找一个域的值在另一个域中的实例。例如,您可以创建一个过滤器,以隔离其姓氏值出现在全名域中的记录:

SET FILTER TO OCCURS(全名, ALLTRIM(姓氏)) = 1

在表达式中包括 ALLTRIM( ) 函数可从姓氏域中删除任何前导或结尾空格,从而确保只比较文本值。

执行区分大小写搜索

与 FIND( ) 函数不同,OCCURS( ) 函数区分大小写,从而使您可以执行区分大小写的搜索。

以下表达式隔离所有在供应商名称域中包含大写名称 "UNITED EQUIPMENT" 的记录,并且忽略 "United Equipment" 的实例。

SET FILTER TO OCCURS(供应商名称, "UNITED EQUIPMENT") > 0

如果您想要查找 "United Equipment" 的所有实例,而无论大小写如何,请使用 UPPER( ) 函数将搜索域值转换为大写形式:

SET FILTER TO OCCURS(UPPER(供应商名称), "UNITED EQUIPMENT") > 0
ACL 脚本指南 14.1