Expresiones aritméticas (XQuery)

 

Se aplica a: SQL Server

THIS TOPIC APPLIES TO: yesSQL Server (starting with 2012)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

Se admiten todos los operadores aritméticos, excepto para idiv. Los siguientes ejemplos ilustran el uso básico de operadores aritméticos:

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

Dado que idiv no es compatible, una solución consiste en usar la 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)')  

El tipo resultante de un operador aritmético se basa en los tipos de los valores de entrada. Si los operandos son de tipos distintos, uno o los dos, cuando sea necesario, se convertirán a un tipo base primitivo común, según la jerarquía de tipos. Para obtener información acerca de la jerarquía de tipos, vea reglas de conversión de tipo en XQuery.

La promoción de tipos numéricos se produce si los dos operandos son de tipos base numéricos distintos. Por ejemplo, al agregar un xs: decimal a una xs: Double primero se cambiaría el valor decimal a double. A continuación, se efectuaría la suma, que daría como resultado un valor double.

Valores atómicos sin tipo se convierten al tipo de base numérico del otro operando, o a xs: Double Si el otro operando es también sin tipo.

Éstas son las limitaciones:

  • Argumentos para los operadores aritméticos deben ser de tipo numérico o untypedAtomic.

  • Operaciones en xs: Integer valores como resultado un valor de tipo xs: decimal en lugar de xs: Integer.

Adiciones de comunidad

AGREGAR
Mostrar: