函数
函数是由函数名和括号内零个或多个操作数组成的运算。 它代表一组输入值和一组结果值之间的关系。
函数的输入值称为参数。 例如,一个函数可以传递两个输入参数,它们具有日期和时间数据类型,并返回一个具有时间戳数据类型的值作为结果。
函数类型
功能分类有多种方法。 函数分类的一种方法是将其分为内置函数、用户定义函数或为不同类型生成的转换函数。
内置函数
内置函数包括运算符函数(如“+”、聚合函数(如AVG)和标量函数(如SUBSTR)。 有关内置聚合和标量函数列表以及这些函数的信息,请参阅内置函数和 Db2 提供的函数。
内置功能位于SYSIBM架构中。
RANK、DENSE_RANK和ROW_NUMBER规范有时被称为内置函数。 有关这些规格的更多信息,请参阅 OLAP规格。
用户定义函数
用户自定义函数是指使用CREATE FUNCTION语句创建并注册到目录中 Db2 的函数。 这些功能允许用户通过添加自己的或第三方供应商的功能定义来扩展 Db2 的功能。
用户自定义函数可以是SQL函数、外部函数或源函数。 SQL函数仅使用SQL语句定义到数据库中。 数据库中定义了一个外部函数,该函数引用了一个外部程序,当调用该函数时,该外部程序将执行。 源函数是通过引用内置函数或另一个用户定义的函数来定义的数据库。 源函数可用于覆盖内置聚合和标量函数,以用于不同类型。
用户自定义函数位于其注册的架构中。 该架构不能是SYSIBM。
为了帮助您定义和实现用户自定义函数, Db2 提供了用户自定义函数的示例。 如果已执行适当的安装工作,您也可以在应用程序中使用这些示例用户定义函数,就像使用其他用户定义函数一样。
有关更多信息,请参阅以下相关主题:
为不同类型生成用户自定义函数
为不同类型生成的用户定义函数 (也称为转换函数 )是当使用CREATE TYPE语句创建不同类型时, Db2 自动生成的函数。
Cast函数支持从不同类型到源类型以及从源类型到不同类型的转换。 在数据类型之间进行转换的能力非常重要,因为不同的类型只能与自身兼容。
生成的投影视图函数与创建它们的不同类型位于同一架构中。 该架构不能是SYSIBM。
更多信息,请参阅 CREATE TYPE 语句。
功能分类的其他方法
根据输入数据值和结果值,函数还可以分为聚合函数、标量函数或表函数。
- 聚合函数接收一组参数值(例如一列的值),并针对输入值集返回一个单值结果。 聚合函数有时也称为列函数 内置函数和用户自定义的源函数可以是聚合函数。 聚合函数不能是外部用户定义的函数或SQL函数。 更多信息,请参阅聚合函数。
- 标量函数接收每个参数的单个值,并返回单个值的结果。 内置函数和用户自定义函数、外部函数、源函数和SQL函数可以是标量函数。 为不同类型创建的函数也是标量函数。 更多信息,请参阅标量函数。
表函数返回一个表,其中包含它所接收的参数集。 每个参数都是一个单独的值。 表函数只能在子查询的 FROM 子句中引用。 表函数可以定义为外部函数或SQL函数,但不能是源函数。
表功能可用于将SQL语言处理能力应用于未存储在数据库中的数据,或允许访问这些数据,就像它们存储在表中一样。 例如,表格功能可以读取文件或从网络获取数据,并返回结果表格。
更多信息,请参阅表格功能。
有关聚合、标量和表函数以及这些函数的信息,请参阅内置函数和 Db2 提供的函数。