次の方法で共有


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

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

実装の制限事項

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

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

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