次の方法で共有


算術式 (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:decimalxs:double に追加すると、最初に 10 進値が double に変更されます。 次に、double 値になる加算が実行されます。

型指定されていないアトミック値は、もう一方のオペランドの数値基本型にキャストされるか、もう一方のオペランドも型指定されていない場合は xs:double にキャストされます。

実装の制限事項

制限事項は次のとおりです。

  • 算術演算子の引数は、数値型または untypedAtomic である必要があります。

  • xs:integer 値に対する操作は、xs:integer ではなく、xs:decimal 型の値になります。