Aritmetické výrazy (XQuery)
platí pro:SQL Server
Podporují se všechny aritmetické operátory s výjimkou idiv. Následující příklady ilustrují základní použití aritmetických operátorů:
DECLARE @x xml
SET @x=''
SELECT @x.query('2 div 2')
SELECT @x.query('2 * 2')
Vzhledem k tomu, že idiv není podporován, je řešením použít konstruktor xs:integer():
DECLARE @x xml
SET @x=''
-- Following will not work
-- SELECT @x.query('2 idiv 2')
-- Workaround
SELECT @x.query('xs:integer(2 div 3)')
Výsledný typ z aritmetického operátoru je založen na typech vstupních hodnot. Pokud jsou operandy různé typy, buď jeden nebo oba v případě potřeby, bude přetypován na běžný primitivní základní typ podle hierarchie typů. Informace o hierarchii typů naleznete v tématu Pravidla přetypování typů v XQuery.
Povýšení číselného typu nastane, pokud jsou dvě operace odlišné číselné základní typy. Například přidání xs:decimal do xs:double by nejprve změnilo desetinnou hodnotu na dvojitou . V dalším kroku by se provedlo sčítání, které by vedlo k dvojité hodnotě.
Nezatypované atomické hodnoty se přetypují na číselný základní typ druhého operandu nebo na xs:double, pokud druhý operand není zadán.
Omezení implementace
Toto jsou omezení:
Argumenty pro aritmetické operátory musí být číselného typu nebo beztypového.
Operace s hodnotami xs:integer výsledkem je hodnota typu xs:decimal místo xs:integer.