算術運算式 (XQuery)

除了 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)')

算術運算子的結果類型式是以輸入值的類型為基礎。如果運算元的類型不同,會在需要時根據類型階層,將其中之一或兩者都轉換成一般的 Primitive 基本類型。如需類型階層的詳細資訊,請參閱<XQuery 中的類型轉換規則>。

如果兩個運算是不同的數值基本類型,就會發生數值類型升級。例如,將 xs:decimal 增加到xs:double,會先將十進位值變更成 double。接下來,執行結果為 double 值的加法。

如果其他運算元也同樣不具類型,就會將不具類型的不可部份完成值轉換成其他運算元的數值基本類型或是xs:double。

實行限制

限制如下:

  • 算術運算子的引數必須是數值類型或 untypedAtomic。

  • xs:integer 值的運算會產生類型 xs:decimal 的值,而不是 xs:integer。