Con Sql Server 2005 è stato introdotto il tipo di dati xml. Uno dei metodi per fare query all'interno di un documento xml è usare un sottoinsieme delle possibilità offerte da XQuery tramite il linguaggio T-SQL. Oltre alle clausole for, where, order by e return delle cosiddette espressioni FLWOR,
Sql Server 2008 supporta anche la clausola let, che permette di assegnare un valore ad una variabile all'interno di una espressione XQuery. Ecco un esempio :
-- dichiarazione e valorizzazione della variabiledeclare @x xmlset @x='<Fatture><Fattura> <Cliente>Mario Rossi</Cliente> <Prodotti> <Prodotto IDProdotto="2" Prezzo="1.99" Quantita="1" /> <Prodotto IDProdotto="3" Prezzo="2.99" Quantita="2" /> <Prodotto IDProdotto="5" Prezzo="1.99" Quantita="1" /> </Prodotti></Fattura> <Fattura> <Cliente>Andrea Bianchi</Cliente> <Prodotti> <Prodotto IDProdotto="2" Prezzo="1.99" Quantita="1"/> </Prodotti> </Fattura></Fatture>'
--XQuery
SELECT @x.query('<Ordini>{for $Fattura in /Fatture/Fatturalet $count :=count($Fattura/Prodotti/Prodotto) order by $countreturn<Ordine>{$Fattura/Cliente}<Conteggio>{$count}</Conteggio></Ordine>}</Ordini>')
--output della query
<Ordini> <Ordine> <Cliente>Andrea Bianchi</Cliente> <Conteggio>1</Conteggio> </Ordine> <Ordine> <Cliente>Mario Rossi</Cliente> <Conteggio>3</Conteggio> </Ordine></Ordini>