Udostępnij za pośrednictwem


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.