算術式 (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 での Type Casting Rules」を参照してください。
数値データ型の上位変換は、2 つのオペランドが異なる数値基本データ型である場合に行われます。 たとえば、 xs:decimal を xs:double に追加すると、最初に 10 進値が double に変更されます。 次に、double 値になる加算が実行されます。
型指定されていないアトミック値は、もう一方のオペランドの数値基本型にキャストされるか、もう一方のオペランドも型指定されていない場合は xs:double にキャストされます。
実装の制限事項
制限事項は次のとおりです。
算術演算子の引数は、数値型または untypedAtomic である必要があります。
xs:integer 値に対する操作は、xs:integer ではなく、xs:decimal 型の値になります。