使用 CREATE AGGREGATE 语句创建新的聚集函数,并在 sysaggregates 系统目录表中注册它。用户定义聚集(UDA)通过执行用户实施的聚集计算来扩展数据库服务器的功能。该语句是 SQL ANSI/ISO 标准的扩展。
用法
您可以按任何顺序指定 INIT 、ITER 、COMBINE 、FINAL 和 HANDLESNULLS 修饰符。重要: 必须在 CREATE AGGREGATE 语句中指定 ITER 和 COMBINE 修饰符。不需要在CREATE AGGREGATE 语句中指定 INIT 、FINAL 和 HANDLESNULLS 修饰符。ITER 、COMBINE 、FINAL 和 INIT 修饰符指定用户定义的聚集的支持函数。这些支持函数在创建用户定义的聚集时无需存在。如果省略 HANDLESNULLS 修饰符,拥有 NULL 聚集参数值的行将不会对聚集计算起作用。如果您将 HANDLESNULLS 修饰符包含在内,则还必须定义所有支持函数以处理 NULL 值。
重要: SELECT 语句只能包含一个 UDA 表达式,它的第一个参数是 DISTINCT 或 UNIQUE 关键字(而不是 ALL 关键字,或者没有关键字)。然而在包含子查询的查询中,您可在查询的每一级指定零个或一个 DISTINCT 或 UNIQUE 用户定义聚集表达式。内置的聚集不服从该限制。如果包含可选的 IF NOT EXISTS 关键字,且指定名称的聚集已经在当前数据库中注册过,则数据库服务器不会采取任何操作(而不是向该应用程序发送异常)。