算術式 (XQuery)
適用対象:SQL Server
idiv を除き、すべての算術演算子がサポートされています。 次の例は、算術演算子の基本的な使用方法を示しています。
DECLARE @x xml
SET @x=''
SELECT @x.query('2 div 2')
SELECT @x.query('2 * 2')
idiv はサポートされていないため、解決策は 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)')
算術演算子から得られる型は、入力値の型に基づいています。 オペランドが異なる型の場合は、必要に応じて一方または両方が、型階層に従って共通のプリミティブ基本型にキャストされます。 型階層の詳細については、「 XQuery の型キャスト規則」を参照してください。
数値データ型の上位変換は、2 つのオペランドが異なる数値基本データ型である場合に行われます。 たとえば、 xs:decimal を xs:double に追加すると、最初に 10 進数の値が double に変更されます。 次に、二重値になる追加が実行されます。
型指定されていないアトミック値は、もう一方のオペランドの数値基本型にキャストされ、もう一方のオペランドも型指定されていない場合は xs:double にキャストされます。
実装の制限事項
制限事項は次のとおりです。
算術演算子の引数は、数値型または untypedAtomic である必要があります。
xs:integer 値に対する操作は、xs:integer ではなく xs:decimal 型の値になります。