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)')
Wynikowy typ z jest operator arytmetyczny zależy od typów wartości wejściowych.Jeśli argumenty są różnego typu, jeden lub oba, gdy jest to wymagane, będzie można rzutować na wspólnej pierwotne typu podstawowego zgodnie z hierarchią typu.Aby uzyskać informacje na temat hierarchii typów zobacz Typ rzutowania reguły powodujące XQuery.
Promocja typu liczbowego występuje wtedy, gdy dwie operacje są różnych typów podstawowych numeryczne.Na przykład, dodanie xs:decimal Aby xs:double najpierw czy zmienić wartość dziesiętna dwukrotnie. Następnie będzie można wykonać dodawanie, mogłaby spowodować podwójne wartości.
Bez typu wartości niepodzielny zostały oddane do innych argument numeryczny typ podstawowy lub xs:double Jeśli inne operand jest także bez typu.
defaultButton
Ograniczenia są następujące:
Argumenty dla operatorów arytmetycznych musi być typu numerycznego lub untypedAtomic.
Operacje na xs:integer wartości w wartości typu wyniku xs:decimal zamiast xs:integer.