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 AdventureWorks2008R2. Per una panoramica su ognuna di queste colonne, vedere Rappresentazione del tipo di dati XML nel database AdventureWorks2008R2.
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.