Delen via


Rekenkundige expressies (XQuery)

van toepassing op:SQL Server-

Alle rekenkundige operatoren worden ondersteund, met uitzondering van idiv-. In de volgende voorbeelden ziet u het basisgebruik van rekenkundige operatoren:

DECLARE @x xml  
SET @x=''  
SELECT @x.query('2 div 2')  
SELECT @x.query('2 * 2')  

Omdat idiv- niet wordt ondersteund, is het gebruik van de xs:integer() constructor:

DECLARE @x xml  
SET @x=''  
-- Following will not work  
-- SELECT @x.query('2 idiv 2')  
-- Workaround   
SELECT @x.query('xs:integer(2 div 3)')  

Het resulterende type van een rekenkundige operator is gebaseerd op de typen invoerwaarden. Als de operanden verschillende typen zijn, wordt een of beide indien nodig omgezet in een gemeenschappelijk primitief basistype op basis van de typehiërarchie. Zie Type Casting Rules in XQueryvoor meer informatie over typehiërarchie.

Promotie van numerieke typen vindt plaats als de twee bewerkingen verschillende numerieke basistypen zijn. Als u bijvoorbeeld een xs:decimale toevoegt aan een xs:double, wordt de decimale waarde eerst gewijzigd in een dubbele waarde. Vervolgens wordt de toevoeging uitgevoerd die zou resulteren in een dubbele waarde.

Niet-getypte atomische waarden worden gecast naar het numerieke basistype van de andere operand of naar xs:double als de andere operand ook niet is getypt.

Implementatiebeperkingen

Dit zijn de beperkingen:

  • Argumenten voor de rekenkundige operatoren moeten van het numerieke type of niet-getypteAtomic-zijn.

  • Bewerkingen voor xs:integer waarden resulteren in een waarde van het type xs:decimale in plaats van xs:integer.