SQL 中的十進位算術

下列公式定義 SQL 中十進位作業結果的精準度及小數位數。 符號 ps 表示第一個運算元的精準度和小數位數,符號 p'和 s' 表示第二個運算元的精準度和小數位數。

符號 mp 表示最大精準度。 在下列情況下, mp 的值為 63:

  • pp' 大於 31 ,或
  • 已明確指定值 63 作為最大精準度。

否則, mp 的值為 31。

符號 ms 表示最大尺度。 ms 的預設值為 31。 ms 可以明確設為從 0 到精準度上限的任何數字。

符號 mds 表示最小除法小數位數。 mds 的預設值為 0 ,其中 0 表示未指定最小小數位數。 mds 可以明確設為從 1 到 min (ms, 9)的任何數字。

可以在 CRTSQLxxx 指令、RUNSQLSTM 指令或 SET OPTION 陳述式的 DECRRESULT 參數上明確指定最大精準度、最大小數位數及最小除法小數位數。 它們也可以在 ODBC 資料來源、 JDBC 內容、OLE DB 內容、.NET 內容中指定。

加法和減法

加法及減法結果的尺度是最大值 (s , s ')。 精準度為最小值 (mp,最大值 (p-s , p '-s') + 最大值 (s , s ') + 1)。

乘法

乘法結果的精準度是 min (mpp+p ') ,且尺度為最小值 (mss+s')。

部門

除法結果的精準度為 (p-s+s') + max (mds, min (msmp -(p-s+ s')) )。 尺度是最大值 (mds,最小值 (msmp -(p-s+ s')) )。 小數位數不能是負數。