Megosztás:


Számtani kifejezések (XQuery)

A következőkre vonatkozik:SQL Server

Minden számtani operátor támogatott, kivéve idiv. Az alábbi példák az aritmetikai operátorok alapszintű használatát szemléltetik:

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

Mivel idiv nem támogatott, a megoldás az xs:integer() konstruktor használata:

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

Az aritmetikai operátor eredményül kapott típusa a bemeneti értékek típusain alapul. Ha az operandusok különböző típusúak, a típushierarchia szerint egy vagy mindkét operandus egy közös primitív alaptípusba kerül. A típushierarchiáról további információt az XQuery Típusbeosztási szabályok című témakörben talál.

A numerikus típus előléptetése akkor történik, ha a két művelet különböző numerikus alaptípus. Ha például egy xs:decimális ad hozzá egy xs:double először a decimális értéket dupla értékre módosítja. A következő lépésben a hozzáadás dupla értéket eredményez.

A be nem írt atomértékek a másik operandus numerikus alaptípusára, vagy az xs:dupla , ha a másik operandus is be van állítva.

Megvalósítási korlátozások

Ezek a korlátozások:

  • Az aritmetikai operátorok argumentumainak numerikus típusúnak vagy nem typedAtomickell lenniük.

  • A xs:egész szám értékek xs:decimális típusú értéket eredményeznek ahelyett, hogy xs:egész szám.