max 函数

fn:max 函数返回序列中值的最大值。

语法

Read syntax diagramSkip visual syntax diagramfn:max( sequence-expression)
sequence-expression
包含下列任一原子类型的项序列或空序列:
  • xs:float
  • xs:double
  • xs:decimal
  • xs:integer
  • xs:string
  • xs:date
  • xs:time
  • xs:dateTime
  • xdt:untypedAtomic
  • xdt:dayTimeDuration
  • xdt:yearMonthDuration
  • 从上面列示的任一类型派生的类型

类型为 xdt:untypedAtomic 的输入项将转换为 xs:double。 此次强制类型转换后,输入序列中的所有项必须可通过提升或子类型替换从而转换为支持 ge 运算符的公共类型。 最大值是使用此公共类型计算的。 例如,如果输入序列包含类型为 money(派生自 xs:decimal)和 stockprice(派生自 xs:float)的项,那么最大值将使用类型 xs:float 进行计算。

在比较日期、时间或日期时间值之前,会将它们调整为使用公共时区。 没有显式时区部分的日期时间值将使用隐式时区,即 UTC。

使用缺省整理来比较字符串值。

返回的值

如果 sequence-expression 并非空序列,那么返回的值是 sequence-expression 中的值的最大值。 返回值的数据类型与 sequence-expression 中各项的数据类型相同,或者是 sequence-expression 中各项提升至的公共数据类型。

如果 sequence-expression 是空序列,那么返回空序列。 如果该序列包含值 NaN,那么会返回 NaN。

示例

以下函数返回序列 (500, 1.0E2, 40.5) 的最大值。

fn:max((500, 1.0E2, 40.5))

这些值将提升至 xs:double 数据类型。 该函数将返回 xs:double 值 5.0E2,它将以序列化方式表示为“500”。