Compartir a través de


max (función de XQuery)

Devuelve, de entre una secuencia de valores atómicos, el parámetro $arg, que es el elemento que tiene un valor mayor que el del resto.

Sintaxis

fn:max($arg as xdt:anyAtomicType*) as xdt:anyAtomicType?

Argumentos

  • $arg
    Secuencia de valores atómicos a partir de la cual se va a devolver el valor máximo.

Notas

Todos los tipos de valores atomizados que se pasan a max() deben ser subtipos del mismo tipo base. Los tipos base que se aceptan son los tipos que admiten la operación gt. Entre estos tipos se incluyen los tres tipos base numéricos integrados, los tipos base de fecha y hora, xs:string, xs:boolean y xdt:untypedAtomic. Los valores de tipo xdt:untypedAtomic se convierten en xs:double. Si hay un mezcla de estos tipos, o si se pasan otros valores de otros tipos, se produce un error estático.

El resultado de max() recibe el tipo base de los tipos que se han pasado, como xs:double en el caso de xdt:untypedAtomic. Si se trata de una entrada vacía estática, se presupone que está vacía y se genera un error estático.

La función max() devuelve el valor de la secuencia de entrada que es mayor que el resto de los valores de la secuencia. En el caso de los valores xs:string, se utilizará la intercalación de punto de código Unicode predeterminada. Si un valor xdt:untypedAtomic no puede convertirse en xs:double, el valor se omite en la secuencia de entrada, $arg. Si la entrada es una secuencia vacía calculada de forma dinámica, se devuelve la secuencia vacía.

Ejemplos

En este tema se proporcionan ejemplos de XQuery con instancias XML almacenadas en varios tipos de columnas xml de la base de datos de AdventureWorks. Para obtener información general sobre cada una de estas columnas, consulte Representación de tipo de datos xml en la base de datos AdventureWorks.

A. Utilizar la función max() de XQuery para buscar las ubicaciones de centro de trabajo del proceso de fabricación que tienen más horas de trabajo

La consulta especificada en min (función de XQuery) puede volver a escribirse para que utilice la función max().

Limitaciones de implementación

Éstas son las limitaciones:

  • La función max() asigna todos los enteros a xs:decimal.

  • No se admite la función max() en valores de tipo xs:duration.

  • No se admiten secuencias que mezclan tipos entre los límites del tipo base.

  • No se admite la opción sintáctica que proporciona una intercalación.