久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

DECIMAL類型除法計算的注意事項&SQL0419N

 木木的陽光 2011-03-22
DB2 decimal類型做算術運算的結果精度遵循下面規(guī)則
---------------------------------------------------------------------
操作數1             操作數2             結果
DECIMAL(w, x)  DECIMAL(y, z)  DECIMAL(p, s) 
                              p = max(x,z)+max(w-x,y-z)
                              s = max(x,z) 

但除法的小數位計算遵循下面規(guī)則: 31-p+s-s'
(The symbols p and s denote the precision and scale of the first operand, and the symbols p' and s' denote the precision and scale of the second operand.)

SUM的話用describe select SUM(col1),  SUM(col2) from table fetch first 1 rows only來檢查實際的精度
 SQL 類型              類型長度      列名                           名稱長度
 --------------------  -----------  ------------------------------  -----------
 485   DECIMAL               31, 3  col1                                             9
 485   DECIMAL               31, 5  col2                                             9
做SUM運算后的結果精度變?yōu)?1位,,按31-p+s-s'公式結果精度為負數。

解決方法:
1.盡量不要使用Decimal,使用Float或者Double
2.更改數據庫參數,如下:

min_dec_div_3 -“十進制除法,,小數位為 3 的”配置參數

此參數提供了一種快速方法來更改 SQL 中十進制除法的小數位計算結果,。

配置類型
數據庫
參數類型
可配置
缺省值 [范圍]
No [Yes, No ]

min_dec_div_3 數據庫配置參數會更改十進制除法算術運算的結果小數位。它可以設置為“Yes”或“No”,。min_dec_div_3 的缺省值為“No”,。如果值為“No”,那么小數位計算為 31-p+s-s',。如果設置為“Yes”,,那么小數位計算為 MAX(3, 31-p+s-s')。這會導致十進制小數部分始終至少具有 3 位的小數位,。精度始終為 31,。

更改此數據庫配置參數可能會導致更改現有數據庫的應用程序。當更改此數據庫配置參數會影響十進制小數部分的結果小數位時,,就可能發(fā)生此情況,。下面列示的是可能會影響應用程序的一些可能的情況。在使用現有數據庫的數據庫服務器上更改 min_dec_div_3 之前應該考慮這些情景說明,。
  • 如果更改其中一個視圖列的結果小數位,,那么對于在某一環(huán)境中用一個設置定義的視圖,當更改數據庫配置參數之后引用該視圖時,,該視圖可能失敗,,返回 SQLCODE -344。消息 SQL0344N 指的是遞歸公共表表達式,,但是,,如果對象名(第一個標記)是一個視圖,那么您將需要刪除此視圖并再次創(chuàng)建它,,以避免此錯誤,。
  • 在隱式或顯式重新綁定靜態(tài)程序包之后,靜態(tài)程序包才會更改行為,。例如,,將值從 NO 更改為 YES 之后,在執(zhí)行重新綁定之后,,才會在結果中包括附加的小數位,。對于任何已更改的靜態(tài)程序包,顯式 REBIND 命令可以用來強制重新綁定,。
  • 涉及十進制小數部分的檢查約束可能會限制先前已接受的某些值,。這種行現在違犯約束,但在更新涉及檢查約束行的其中一列或處理帶有 IMMEDIATE CHECKED 選項的 SET INTEGRITY 語句之前檢測不到,。要強制檢查這樣的約束,,執(zhí)行 ALTER TABLE 語句以刪除檢查約束,,然后執(zhí)行 ALTER TABLE 語句來再次添加該約束。
注: min_dec_div_3 還有下列限制:
  1. 命令 GET DB CFG FOR DBNAME 將不顯示 min_dec_div_3 設置,。確定當前設置的最好方法是觀察十進制小數結果的副作用,。例如,考慮如下語句:
    VALUES (DEC(1,31,0)/DEC(1,31,5))
    如果此語句返回 SQL 代碼 SQL0419N,,那么該數據庫不具有 min_dec_div_3 支持,,或者已將它設置為“No”。如果該語句返回1.000,,那么 min_dec_div_3 設置為“Yes”,。
  2. 當運行下列命令時,在配置關鍵字列表中不會出現 min_dec_div_3? UPDATE DB CFG
參考SUM聚合函數

SUM aggregate function

Read syntax diagramSkip visual syntax diagram
           .-ALL------.                  
>>-SUM--(--+----------+--expression--)-------------------------><
           '-DISTINCT-'                  

The schema is SYSIBM.

The SUM function returns the sum of a set of numbers.

The argument values must be numbers (built-in types only) and their sum must be within the range of the data type of the result.

The data type of the result is the same as the data type of the argument values, except that:
  • The result is a large integer if the argument values are small integers.
  • The result is double-precision floating point if the argument values are single-precision floating point.
  • The result is DECFLOAT(34) if the argument is DECFLOAT(n).

If the data type of the argument values is decimal, the precision of the result is 31 and the scale is the same as the scale of the argument values. The result can be null.

    本站是提供個人知識管理的網絡存儲空間,,所有內容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內容中的聯(lián)系方式,、誘導購買等信息,,謹防詐騙。如發(fā)現有害或侵權內容,,請點擊一鍵舉報,。
    轉藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多