ヘッダーをスキップ
Oracle® OLAP DMLリファレンス
11gリリース2 (11.2)
B61346-03
  ドキュメント・ライブラリへ移動
ライブラリ
製品リストへ移動
製品
目次へ移動
目次
索引へ移動
索引

前
 
次
 

ROUND

ROUNDファンクションは、指定する構文に従って数値操作または日時操作を実行します。ROUNDファンクションの構文は操作のタイプごとに異なるため、次の2項目に分けて説明します。


ROUND(日時)

ROUND(日時)ファンクションは、書式モデルfmtで指定した単位に丸められた日付を返します。戻される値は、日付に異なる日時データ型を指定した場合でも、常にDATETIMEデータ型です。

戻り値

DATETIME

構文

ROUND(datetime_exp, [format ])

パラメータ

datetime-exp

日時の数値を指定する日時式。

format

次の表に示す書式モデルを指定するテキスト式。書式モデルは、日時の数字を丸める方法を示します。

この引数を省略した場合、datetime-expは最も近い日付に丸められます。

表8-13は、ROUNDおよびTRUNC日付ファンクションで使用できる書式モデルと、日付の丸めや切捨ての対象となる単位をまとめたものです。デフォルトのモデル「DD」では、時間が午前0時である日にちの形に丸められた、または切り捨てられた日付が返されます。

表8-13 ROUNDおよびTRUNC日付ファンクションの日時書式テンプレート

書式モデル 丸め/切捨て対象の単位
CC
SCC

4桁の年の最初の2桁より1大きい数

SYYYY
YYYY
YEAR
SYEAR
YYY
YY
Y

年(7月1日で切上げ)

IYYY
IY
IY
I

ISO年

Q

四半期(四半期の2番目の月の16日で切上げ)

MONTH
MON
MM
RM

月(16日で切上げ)

WW

年の最初の日と同じ曜日

IW

ISO年の最初の日と同じ曜日

W

月の最初の日と同じ曜日

DDD
DD
J

DAY
DY
D

週の開始日

HH
HH12
HH24

時間

MI


書式モデルDAY、DYおよびDで使用される週の開始日は、初期化パラメータNLS_TERRITORYで暗黙的に指定されます。

例8-83 最も近い年への丸め

NLS_DATE_FORMATオプションの値がDD-MON-YYの場合、次の文を発行します。

SHOW ROUND (TO_DATE('27-OCT-92'),'year')

次の値が返されます。

01-JAN-93

例8-84 別の書式への丸め

アナリティック・ワークスペースに、次のような定義と値を持つmydatetimeという名前の変数があるとします。

DEFINE MYDATETIME VARIABLE DATETIME
DATE_FORMAT = 'MON-RRRR-DD-HH24'
mydatetime = CURRENT_TIMESTAMP
SHOW mydatetime
= 'AUG-2006-07-13'

次のそれぞれのSHOW文が示すように、指定する値の日付書式によって、ROUNDファンクションからmydatetime変数に返される値は異なります。

SHOW ROUND(mydatetime, 'RRRR')
01-JAN-07
 
SHOW ROUND(mydatetime, 'MON')
01-AUG-06
 
SHOW ROUND(mydatetime, 'DD')
08-AUG-06
 
SHOW ROUND(mydatetime)
= 'AUG-2006-08-00'

ROUND(数値)

数値を引数として指定すると、ROUNDファンクションは指定する2番目の数字に最も近い倍数に丸めた数字、または2番目の数字が示す小数桁数で丸めた数字を返します。

戻り値

DECIMAL(丸めのタイプがMULTIPLEの場合)

NUMBER(丸めのタイプがDECIMALの場合)

構文

ROUND(number_exp roundvalue) [MULTIPLE|DECIMAL]

パラメータ

number_exp

丸める数字を特定する式。

roundvalue

丸めの基礎を指定する値。

丸めのタイプがMULTIPLEの場合:

  • number_exproundvalueの最も近い倍数に丸められます。

  • roundvalueINTEGERまたは小数です。

 

丸めのタイプがDECIMALの場合:

  • roundvalueで小数点の右側または左側の桁数を指定し、number_expを丸めます。roundvalueが正の場合、小数点の右側の数字を指定した桁数で丸めます。負の場合、小数点の左側の数字を指定した桁数で丸めます。

  • roundvalueを省略すると、number_expは小数桁数0の整数に丸められます。

  • roundvalueINTEGERである必要があります。

MULTIPLE

(デフォルト)roundvalueの最も近い倍数に丸めることを指定します。

DECIMAL

roundvalueで指定した小数桁で丸めることを指定します。

使用上の注意

ROUNDを使用した式の比較

DECIMAL値は、使用する有効桁数のレベルで表示されますが、それとはわずかに異なる形式で格納される場合があります。このわずかな違いは、2つの式を比較する際に予期しない結果になることがあります。この問題は、計算の多くがINTEGER値をDECIMAL値に変換してから実行されるため、計算を伴うINTEGER式を比較する場合にも生じます。通常のレポートでは、表示される小数点以下は2桁または3桁のみであるため、この相違に気づきません。

たとえば、2つの数字をEQまたはNE演算子で比較するとき、最後の有効数字の相違を無視することが必要な場合が多くあります。expense100.00000001として格納されていた場合、最後の有効数字は単純な比較では無視されません。

次の文

SHOW expense EQ 100.00

によって、次の結果が生成されます。

NO

これに対し、EQまたはNEに意味のない最後の有効数字を無視させるようにROUNDを使用できます。

SHOW ROUND(expense, .01) EQ 100.00

この文によって生成される出力は、次のとおりです。

YES

ABSを使用した式の比較

アプリケーションで計算の速度を重視する場合は、EQまたはNEとともにROUNDを使用するかわりに、ABSファンクションをLTとともに使用して数字を比較することもできます。

例8-85 異なる倍数への丸め

次の文は、式2/3を異なる倍数に丸めた結果を示します。DECIMALS設定の値は2です。

次の文

SHOW ROUND(2/3, .01)

によって、次の結果が生成されます。

0.67

次の文

SHOW ROUND(2/3, .1)

によって、次の結果が生成されます。

0.70

次の文

SHOW ROUND(2/3, .5)

によって、次の結果が生成されます。

0.50

例8-86 最も近い千の単位への丸め

次の例は、最も近い千の単位に丸めたsalesを示します。

LIMIT month TO FIRST 4
LIMIT district TO FIRST 1
REPORT ROUND(sales 1000)

これらの文によって生成される出力は次のとおりです。

DISTRICT: BOSTON
               -------------ROUND(SALES 1000)-------------
               -------------------MONTH-------------------
PRODUCT          Jan95      Feb95      Mar95      Apr95
-------------- ---------- ---------- ---------- ----------
Tents           32,000.00  33,000.00  43,000.00  58,000.00
Canoes          66,000.00  76,000.00  92,000.00 126,000.00
Racquets        52,000.00  57,000.00  59,000.00  69,000.00
Sportswear      53,000.00  59,000.00  63,000.00  68,000.00
Footwear        91,000.00  87,000.00 100,000.00 108,000.00

例8-87 最も近い12の倍数への丸め

12の最も近い倍数に丸めたunitsを表示するには、次の文を使用します。

LIMIT month TO FIRST 4
LIMIT district TO FIRST 1
REPORT DECIMAL 0 ROUND(units 12)

これらの文によって生成される出力は次のとおりです。

DISTRICT: BOSTON
               --------------ROUND(UNITS 12)--------------
               -------------------MONTH-------------------
PRODUCT          Jan95      Feb95      Mar95      Apr95
-------------- ---------- ---------- ---------- ----------
Tents                 204        204        264        360
Canoes                348        396        480        660
Racquets              996      1,080      1,116      1,308
Sportswear          1,092      1,212      1,296      1,404
Footwear            2,532      2,400      2,772      2,976

例8-88 小数桁での丸め

次の文は、15.193を異なる小数桁で丸めた結果を示します。

次の文

ROUND(15.193, 1)

生成される結果は次のとおりです。

15.2

次の文

ROUND(15.193, -1)

生成される結果は次のとおりです。

20