算術表示式 (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 中的類型轉換規則。
如果兩個作業是不同的數值基底類型,就會發生數值類型升級。 例如,將 xs:decimal 新增至 xs:double 會先將十進位值變更為 double 。 接下來,將會執行會產生雙精度浮點數的值。
不具類型的不可部分完成值會轉換成其他操作數的數值基底類型,如果 另一個操作數也是不具類型的,則轉換成 xs:double 。
實作限制
以下是限制:
算術運算子的自變數必須是數值類型或 untypedAtomic。
xs:integer 值的作業會產生 xs:decimal 類型的值,而不是 xs:integer。