Hitachi

Hitachi Advanced Data Binder SQLリファレンス


8.4.9 ROUND

対象データを小数点以下n桁に丸めた値を返します。

日時データを丸めるスカラ関数ROUNDについては,「8.9.7 ROUND」を参照してください。

〈この項の構成〉

(1) 指定形式

スカラ関数ROUND::=ROUND(対象データ〔,桁数〕)
 
  対象データ::=値式
  桁数::=値式

(2) 指定形式の説明

対象データ

数データ(小数点以下n桁に丸める値)を指定します。

指定規則を次に示します。

  • 対象データは,値式の形式で指定します。値式については,「7.21 値式」を参照してください。

  • 対象データには,数データを指定してください。数データについては,「6.2.1 データ型の種類」の「(1) 数データ」を参照してください。

  • 対象データには,?パラメタを単独で指定できません。

桁数

桁数を指定します。

指定規則を次に示します。

  • 桁数は,値式の形式で指定します。値式については,「7.21 値式」を参照してください。

  • 桁数には,データ型がINTEGERBIGINT型,またはSMALLINT型のデータを指定してください。

  • 桁数を省略した場合,桁数に0が仮定されます。

  • 桁数に?パラメタを指定した場合,?パラメタのデータ型にINTEGER型が仮定されます。

(3) 規則

  1. 実行結果のデータ型を次の表に示します。

    表8‒6 スカラ関数ROUNDの実行結果のデータ型

    対象データのデータ型

    実行結果のデータ型

    INTEGERまたはBIGINT

    INTEGER

    SMALLINT

    SMALLINT

    DECIMAL(p,s)

    または

    NUMERIC(p,s)

    p≦37の場合

    DECIMAL(p+1,s)

    p=38の場合

    DECIMAL(38,s)

    DOUBLE PRECISIONまたはFLOAT

    DOUBLE PRECISION

  2. 対象データのデータ型で実行結果を表現できない場合,オーバフローエラーになります。

  3. 対象データのデータ型がSMALLINT型,INTEGERBIGINTDECIMAL,またはNUMERICの場合,n+1桁の端数を四捨五入した値を返します。

    (例)ROUND(325.72,1) → 325.70

    なお,対象データが負の値の場合,次のように四捨五入されます。

    (例1)ROUND(-2.3,0) → -2.0

    (例2)ROUND(-2.7,0) → -3.0

  4. 対象データがDOUBLE PRECISIONまたはFLOATの場合,n+1桁以下の端数に対して,最近接偶数への丸めを行った値を返します。

  5. 桁数に負の値を指定した場合は,整数部の指定桁以下を丸めます。

    (例)ROUND(325.72,-1) → 330.00

  6. 桁数を省略するか,または0を指定した場合,小数点以下が丸められ,実行結果が整数になります。

    (例)ROUND(325.72,0) → 326.00

  7. 対象データの範囲外の桁数を指定した場合,次のように処理されます。

    • 桁数に正の値を指定した場合は,数値の丸めは実行されません。対象データの値をそのまま返します。

      (例1)ROUND(0.12,5) → 0.12

      (例2)ROUND(58,1) → 58

    • 桁数に負の値を指定した場合は0を返します。

      (例)ROUND(58,-5) → 0

  8. 実行結果の値は,非ナル値制約なし(ナル値を許す)となります。

  9. 対象データまたは桁数がナル値の場合,実行結果はナル値になります。

(4) 例題

例題

T1C1列〜C3列の値を次のように丸めます。

  • C1列:小数点第1位に丸めます(小数点第2位を四捨五入します)。

  • C2列:整数部の百の位に丸めます(十の位を四捨五入します)。

  • C3列:小数点第1位に最近接偶数への丸めを適用します。

この例では,HADBが動作する環境の丸めモードは,最近接偶数への丸めとします。

SELECT ROUND("C1",1),ROUND("C2",-2) ,ROUND("C3",0) FROM "T1"

[図データ]