Wyrażenia arytmetyczny (XQuery)
Obsługiwane są wszystkie operatory arytmetyczne, z wyjątkiem idiv.Poniższe przykłady ilustrują podstawowe zastosowanie operatory arytmetyczne:
DECLARE @x xml
SET @x=''
SELECT @x.query('2 div 2')
SELECT @x.query('2 * 2')
Ponieważ idiv jest nieobsługiwana, rozwiązaniem jest użycie xs:integer() Konstruktor:
DECLARE @x xml
SET @x=''
-- Following will not work
-- SELECT @x.query('2 idiv 2')
-- Workaround
SELECT @x.query('xs:integer(2 div 3)')
Typ powstałe z operator arytmetyczny opiera się na typy wartości wejściowych.Jeśli różne typy jednej lub obu, wymagane będą rzutowane na wspólne pierwotny typ podstawowy zgodnie z hierarchią typu operandów.Aby uzyskać informacje dotyczące typu hierarchii, zobacz Typ rzutowania reguł w XQuery.
Promocja typu liczbowego występuje, jeśli dwie operacje są różnych typów podstawowych numeryczne.Na przykład dodanie xs:decimal do xs:double najpierw zmienić wartość dziesiętną do podwójnego.Następnie dodanie byłyby wykonywane spowodowałoby w podwójnej wartości.
Bez wartości niepodzielny zostały oddane do drugiego operandu liczbowe typu podstawowego, lub xs:double Jeśli jest także bez drugiego operandu.
Ograniczenia wdrażania
Są następujące ograniczenia:
Argumenty dla operatorów arytmetycznych musi być typu numerycznego lub untypedAtomic.
Operacje na xs:integer wynik wartości w wartości typu xs:decimal zamiast xs:integer.