Condividi tramite


Funzione max (XQuery)

Restituisce l'elemento il cui valore è maggiore di quello di tutti gli altri elementi da una sequenza di valori atomici, $arg.

Sintassi

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

Argomenti

  • $arg
    Sequenza di valori atomici dalla quale deve essere restituito il valore massimo.

Osservazioni

Tutti i tipi di valori atomizzati passati a max() devono essere sottotipi dello stesso tipo di base. I tipi di base accettati sono i tipi che supportano l'operazione gt. Tali tipi includono i tre tipi numerici di base predefiniti, xs:string, xs:boolean e xdt:untypedAtomic. Per i valori di tipo xdt:untypedAtomic viene eseguito il cast a xs:double. Se è presente una combinazione di questi tipi o se vengono passati altri valori di altri tipi, verrà generato un errore statico.

Nel risultato di max() verrà inserito il tipo di base dei tipi passati, ad esempio xs:double nel caso del tipo xdt:untypedAtomic. Se l'input è costituito da dati statici vuoti, viene generato un errore statico.

La funzione max() restituisce il valore della sequenza che è maggiore di qualsiasi altro valore della sequenza di input. Per i valori xs:string, vengono utilizzate le regole di confronto dei punti di codice Unicode predefinite. Se non è possibile eseguire il cast di un valore xdt:untypedAtomic a xs:double, tale valore viene ignorato nella sequenza di input, $arg. Se l'input è rappresentato da una sequenza vuota calcolata in modo dinamico, viene restituita la sequenza vuota.

Esempi

In questo argomento vengono forniti esempi di utilizzo del linguaggio XQuery sulle istanze XML archiviate in diverse colonne di tipo xml nel database AdventureWorks. Per una panoramica su ognuna di queste colonne, vedere Rappresentazione del tipo di dati XML nel database AdventureWorks.

A. Utilizzo della funzione XQuery max() per trovare i centri di lavorazione del processo di produzione che hanno il maggior numero di ore di manodopera

È possibile riformulare la query illustrata nella funzione Min (XQuery) in modo da utilizzare la funzione max().

Limitazioni di implementazione

Limitazioni:

  • La funzione max() mappa tutti i valori integer a xs:decimal.

  • L'utilizzo della funzione max() su valori di tipo xs:duration non è supportato.

  • Le sequenze che prevedono una combinazione di tipi di base non sono supportate.

  • L'opzione della sintassi che fornisce una regola di confronto non è supportata.

Vedere anche

Riferimento