Oracle® OLAP

Expression Syntaxリファレンス

12cリリース1 (12.1)

B72979-03(原本部品番号:E23382-06)

2014年6月

Oracle OLAP Expression Syntax Reference, 12c Release 1 (12.1)

B72979-03

Copyright © 2006, 2014, Oracle and/or its affiliates. All rights reserved.

原本主著者: David McDermid

原本協力者: Oracle Database 12cのドキュメントを、本リリースに携わった全員にとって創造の源となったMark Townsendに捧げます。

原本協力者: Donna Carver、David Greenfield、Anne Murphy、Martin Roth、Fuad Sheehab

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクル社までご連絡ください。

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations.As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs.No other rights are granted to the U.S. Government.

このソフトウェアもしくはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアもしくはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアもしくはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、オラクル社およびその関連会社は一切の責任を負いかねます。

OracleおよびJavaはOracle Corporationおよびその関連企業の登録商標です。その他の名称は、それぞれの所有者の商標または登録商標です。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。オラクル社およびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

目次

タイトルおよび著作権情報

はじめに

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

- バッカス正規形構文

1 基本要素

- ディメンション・オブジェクト名

- 構文

- 例

- ディメンション・データ型

- 演算子

- 単項演算子

- 構文

- 例

- バイナリ演算子

- 構文

- 例

- 連結演算子

- 構文

- 例

- 条件

- 単純比較条件

- 構文

- 引数

- 例

- グループ比較条件

- 構文

- 例

- 階層リレーションの条件

- 構文

- 引数

- 例

- 範囲条件

- 構文

- 例

- 複数条件

- 構文

- 例

- 否定条件

- 構文

- 例

- 特殊条件

- 構文

- 例

- パターン一致条件

- LIKE演算子

- 構文

- 引数

- 例

- リテラル式

- 例

- CASE式

- 戻り値

- 構文

- 引数

- 例

- 修飾データ参照(QDR)

- 構文

- 引数

- 例

2 OLAP関数

- OLAP関数(アルファベット順)

- OLAP関数(カテゴリ別)

- 集計関数

- 分析関数

- 階層関数

- LAG関数

- OLAP DML関数

- ランク関数

- シェア関数

- ウィンドウ関数

- AVERAGE_RANK

- AVG

- COUNT

- DENSE_RANK

- HIER_ANCESTOR

- HIER_CHILD_COUNT

- HIER_DEPTH

- HIER_LEVEL

- HIER_ORDER

- HIER_PARENT

- HIER_TOP

- LAG

- LAG_VARIANCE

- LAG_VARIANCE_PERCENT

- LEAD

- LEAD_VARIANCE

- LEAD_VARIANCE_PERCENT

- MAX

- MIN

- OLAP_DML_EXPRESSION

- RANK

- ROW_NUMBER

- SHARE

- SUM

3 行関数

- 行関数(アルファベット順)

- 行関数(カテゴリ別)

- 数値関数

- 文字を返す文字関数

- NLS文字関数

- 数値を返す文字関数

- 日時関数

- 一般的な比較関数

- 変換関数

- エンコードおよびデコード関数

- NULL関連の関数

- 環境ファンクションおよび識別子ファンクション

- ABS

- ACOS

- ADD_MONTHS

- ASCII

- ASCIISTR

- ASIN

- ATAN

- ATAN2

- BIN_TO_NUM

- BITAND

- CAST

- CEIL

- CHARTOROWID

- CHR

- COALESCE

- CONCAT

- COS

- COSH

- CURRENT_DATE

- CURRENT_TIMESTAMP

- DBTIMEZONE

- DECODE

- EXP

- EXTRACT (日時)

- FLOOR

- FROM_TZ

- GREATEST

- HEXTORAW

- INITCAP

- INSTR

- LAST_DAY

- LEAST

- LENGTH

- LN

- LNNVL

- LOCALTIMESTAMP

- LOG

- LOWER

- LPAD

- LTRIM

- MOD

- MONTHS_BETWEEN

- NANVL

- NEW_TIME

- NEXT_DAY

- NLS_CHARSET_ID

- NLS_CHARSET_NAME

- NLS_INITCAP

- NLS_LOWER

- NLS_UPPER

- NLSSORT

- NULLIF

- NUMTODSINTERVAL

- NUMTOYMINTERVAL

- NVL

- NVL2

- ORA_HASH

- POWER

- RAWTOHEX

- REGEXP_COUNT

- REGEXP_INSTR

- REGEXP_REPLACE

- REGEXP_SUBSTR

- REMAINDER

- REPLACE

- ROUND (日付)

- ROUND (数値)

- ROWIDTOCHAR

- ROWIDTONCHAR

- RPAD

- RTRIM

- SESSIONTIMEZONE

- SIGN

- SIN

- SINH

- SOUNDEX

- SQRT

- SUBSTR

- SYS_CONTEXT

- SYSDATE

- SYSTIMESTAMP

- TAN

- TANH

- TO_BINARY_DOUBLE

- TO_BINARY_FLOAT

- TO_CHAR (文字)

- TO_CHAR (日時)

- TO_CHAR (数値)

- TO_DATE

- TO_DSINTERVAL

- TO_NCHAR (文字)

- TO_NCHAR (日時)

- TO_NCHAR (数値)

- TO_NUMBER

- TO_TIMESTAMP

- TO_TIMESTAMP_TZ

- TO_YMINTERVAL

- TRANSLATE

- TRANSLATE (USING)

- TRIM

- TRUNC (数値)

- TZ_OFFSET

- UID

- UNISTR

- UPPER

- USER

- VSIZE

- WIDTH_BUCKET

A 予約語

- 予約語

- 特殊記号

はじめに

OLAP式構文には、分析関数、算術演算子、単一行関数が含まれます。OLAP構文は、SQL構文を拡張したものです。SQLの分析関数や単一行関数を使用したことがある場合は、この構文の作成は難しくありません。

内容は次のとおりです。

- 対象読者

- ドキュメントのアクセシビリティについて

- 関連ドキュメント

- 表記規則

- バッカス正規形構文

対象読者

このマニュアルは、計算済メジャーを作成するユーザー、またはリレーショナル表に格納されているデータをキューブ、キューブ・ディメンション、メジャーなどのディメンション・データベース・オブジェクトで使用するために変換するユーザーを対象にしています。

ドキュメントのアクセシビリティについて

Oracleのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

Oracleサポート・サービスでは、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。

関連ドキュメント

詳細は、Oracle Database 11.2ドキュメント・セットの次のドキュメントを参照してください。

- 『Oracle OLAPユーザーズ・ガイド』
Oracle DatabaseのOLAPオプションを使用した、SQLアプリケーションでの分析処理機能の拡張およびサマリー・データの管理方法について説明します。

- 『Oracle OLAP Analytic Workspace Managerのカスタマイズ』
XMLドキュメントおよびJavaプラグインを使用してAnalytic Workspace Managerをカスタマイズする方法について説明します。

- 『Oracle OLAP DMLリファレンス』
アナリティック・ワークスペース・オブジェクトの定義および操作に使用するOLAPデータ操作言語(OLAP DML)の詳細を説明します。

- 『Oracle Databaseリファレンス』
キューブやキューブ・ディメンションなどの次元オブジェクトに使用するデータ・ディクショナリ・ビューの詳細を説明します。

- 『Oracle Database PL/SQLパッケージおよびタイプ・リファレンス』
キューブの管理に使用する一部のPL/SQLパッケージの詳細を説明します。

- 『Oracle OLAP Java API開発者ガイド』
データベース内の次元オブジェクトの定義、構築および問合せに使用する、Oracle OLAP用Javaアプリケーション・プログラミング・インタフェースである、Oracle OLAP APIについて説明します。

- 『Oracle OLAP Java API Reference』
データベース内の次元オブジェクトの定義、構築および問合せを行うための、Oracle OLAP Java APIのクラスおよびメソッドについて説明します。

表記規則

このドキュメントでは次の表記規則を使用します。

規則

意味

太字

太字は、操作に関連するGraphical User Interface要素、または本文中で定義されている用語および用語集に記載されている用語を示します。

イタリック体

イタリックは、ユーザーが特定の値を指定するプレースホルダ変数を示します。

固定幅フォント

固定幅フォントは、段落内のコマンド、URL、サンプル内のコード、画面に表示されるテキスト、または入力するテキストを示します。

バッカス正規形構文

このリファレンスの構文は、次の記号と表記規則を使用するバッカス正規形(BNF)の簡単なバリエーションで表されています。

記号または表記規則

説明

[ ]

大カッコは、カッコ内の項目を任意に選択することを表します。

{ }

中カッコは、カッコ内の選択項目のうち、1つが必須であることを表します。

|

縦線は、大カッコまたは中カッコ内の選択項目を区切ります。

...

省略記号は、前述の構文要素を繰り返すことができることを示します。

デリミタ

大カッコ、中カッコおよび縦線以外のデリミタは、表示されているとおり入力する必要があります。

太字

太字で示されている単語はキーワードです。文字どおりに入力する必要があります。(オペレーティング・システムによっては、キーワードは大文字と小文字が区別されます。)太字以外の単語は、プレースホルダであり、名前または値を代入する必要があります。

1 基本要素

この章ではOLAPの式構文の基本的な構築単位について説明します。内容は次のとおりです。

- ディメンション・オブジェクト名

- ディメンション・データ型

- 演算子

- 条件

- リテラル式

- CASE式

- 修飾データ参照(QDR)

ディメンション・オブジェクト名

ディメンション・オブジェクトのネーミング規則は、標準のOracleネーミング規則に従います。すべての名前は大文字と小文字が区別されません。

構文

owner.{ cube | dimension | table }.{ measure | column | attribute }

表1-1 ディメンション・オブジェクトのネーミング規則

規則

引用ID

非引用ID

最初の文字

任意の文字。

データベース・キャラクタ・セットのアルファベット文字。

その他の文字

すべての文字、句読記号およびスペースを使用できます。

二重引用符およびNULL (\0)は使用できません。

データベース・キャラクタ・セットの英数字およびアンダースコア(_)は使用できます。

ドル記号($)および番号記号(#)は使用できますが、推奨されません。

二重引用符およびNULL (\0)は使用できません。

予約語

使用できますが、推奨されません。

使用できません。

例

GLOBAL.UNITS_CUBE.SALESは、ユニット・キューブ内のSALESメジャーを識別します。

TIME.DIM_KEYおよびTIME.LEVEL_NAMEは、「時間」ビューの列を識別します。

TIME.CALENDARは、時間ディメンションのCALENDAR階層を識別します。

TIME.CALENDAR.CALENDAR_YEARは、時間ディメンションのCALENDAR階層のCALENDAR_YEARレベルを識別します。

GLOBAL.UNITS_FACT.MONTH_IDは、UNITS_FACT表の外部キー列を識別します。

TIME_DIM.CALENDAR_YEAR_DSCは、TIME_DIM表の列を識別します。

ディメンション・データ型

表1-2で、キューブおよびメジャーに使用できるデータ型について説明します。

表1-2 ディメンション・データ型

データ型

説明

BINARY_DOUBLE

64ビット浮動小数点数。BINARY_DOUBLE値には9バイトが必要です。

BINARY_FLOAT

32ビット浮動小数点数。BINARY_FLOAT値には5バイトが必要です。

CHAR (size [BYTE|CHAR])

文字数またはバイト数がsizeである固定長文字列。sizeは1から2000の範囲です。

DATE

紀元前4712年1月1日から西暦9999年12月31日までの範囲の有効な日付。日時フィールドYEAR、MONTH、DAY、HOUR、MINUTEおよびSECONDが含まれます。小数部の秒数およびタイムゾーンは含まれません。デフォルトの形式は、NLS_DATE_FORMATパラメータによって明示的に、またNLS_TERRITORYパラメータによって暗黙的に決定されます。DATE値には7バイトが必要です。

DECIMAL (p,s)

NUMBERデータ型で表された、精度がpで位取りがsの小数値。

FLOAT [(p)]

精度がpのNUMBERのサブタイプ。FLOATは、内部的にはNUMBERとして表されます。精度は1から126までの2進数です。FLOATの値は1から22バイトである必要があります。

INTEGER

位取りが0のNUMBERデータ型として表される整数。

INTERVAL DAY[(day_precision)] TO SECOND[(second_precision)]

日、時間、分および秒で表される期間。日の精度はDAY日時フィールドの最大桁数です。デフォルトは2です。第2の精度は、SECONDフィールドの小数部の桁数です。デフォルト値は6です。日と秒の精度はどちらも0から9までの値です。INTERVAL DAY TO SECOND値には11バイトが必要です。

INTERVAL YEAR[(precision)] TO MONTH

年と月で表される期間。精度はYEAR日時フィールドの桁数であり、0から9までの値です。デフォルトの精度は2桁です。INTERVAL YEAR TO MONTH値には5バイトが必要です。

NCHAR[(size)]

長さがsize文字の固定長文字列です。sizeの範囲は1文字から2000バイトまでです。最大文字数は各国語キャラクタ・セットによって決まり、文字当たり最大4バイトが必要です。

NUMBER [(p[,s])]

精度がpで位取りがsの小数。精度は1から38までの範囲です。位取りの有効範囲は-84から127です。NUMBERの値は1から22バイトである必要があります。

NVARCHAR2(size)

最大長がsize文字の可変長Unicode文字列です。sizeの範囲は1文字から32,767バイトまでです。最大文字数は各国語キャラクタ・セットによって決まり、文字当たり最大4バイトが必要です。

TIMESTAMP[(precision)]

日時フィールドYEAR、MONTH、DAY、HOUR、MINUTEおよびSECONDを含む有効な日付。タイム・ゾーンはありません。精度は、SECONDフィールドの小数部の桁数であり、0から9の値を持ちます。デフォルトの精度は6桁です。デフォルトの形式は、NLS_DATE_FORMATパラメータによって明示的に、またNLS_TERRITORYパラメータによって暗黙的に決定されます。TIMESTAMP値には、精度に応じて7から11バイトが必要です。

TIMESTAMP [(precision)] WITH LOCAL TIME ZONE

TIMESTAMP WITH TIME ZONEと同じ説明が適用される有効な日付ですが、次の例外があります。

- データはデータベース・タイム・ゾーンとともにデータベースに格納されます。

- データは取得時にセッション時間に変換されます。

- TIMESTAMP WITH LOCAL TIME ZONE値には、精度に応じて7から11バイトが必要です。

TIMESTAMP[(precision)] WITH TIME ZONE

日時フィールドYEAR、MONTH、DAY、HOUR、MINUTE、SECOND、TIMEZONE_HOURおよびTIMEZONE_MINUTEを含む有効な日付。精度は、SECONDフィールドの小数部の桁数であり、0から9の値を持ちます。デフォルトの精度は6桁です。デフォルトの形式は、NLS_DATE_FORMATパラメータによって明示的に、またNLS_TERRITORYパラメータによって暗黙的に決定されます。TIMESTAMP WITH TIMEZONE値には13バイトが必要です。

VARCHAR2(size [BYTE|CHAR])

最大文字数またはバイト数がsizeである可変長文字列。sizeの範囲は1から32,767バイトまでです。

演算子

演算子は、データ項目を操作して結果を返します。オペランドまたは引数と呼ばれる個々のデータ項目を操作します。これらの項目は、特殊文字またはキーワードで表されます。演算子は構文によって、オペランドより前、オペランドより後、または2つのオペランドの間に置かれます。

OLAP式構文には、次のタイプの演算子があります。

- 単項演算子

- バイナリ演算子

- 連結演算子

条件演算子については、「条件」を参照してください。

単項演算子

単項演算子は、1つのオペランドのみを操作します。

表1-3 単項演算子

演算子

説明

+

正の値

-

負の値

構文

operator operand

例

-5は負数です。

バイナリ演算子

バイナリ演算子は、2つのオペランドを操作します。

表1-4 バイナリ演算子

演算子

説明

+

加算

-

減算

*

乗算

/

除算

構文

operand operator operand

例

次に、オペランドに数値リテラルを使用した2つの単純な例を示します。

7 * 2は14です。

(8/2) + 1は5です。

この例は、販売メジャーの値に数値リテラルを乗算して、Sales Budgetという名前の計算済メジャーを作成します。

UNITS_CUBE.SALES * 1.06

表1-5 乗算演算子の例

製品

レベル

販売

販売予算

ハードウェア

CLASS

124191336

131642816

デスクトップPC

FAMILY

74556528

79029919

モニター

FAMILY

3972142

4210470

メモリー

FAMILY

5619219

5956372

モデム/Fax

FAMILY

5575726

5910269

CD/DVD

FAMILY

16129497

17097267

ポータブルPC

FAMILY

18338225

19438518

次の例は、SalesからCostを引くことにより、Profitという名前の計算済メジャーを作成します。

UNITS_CUBE.SALES - UNITS_CUBE.COST

製品

レベル

販売

コスト

収益

ハードウェア

CLASS

124191336

116058248

8133088

デスクトップPC

FAMILY

74556528

71937312

2619215

モニター

FAMILY

3972142

3546195

425947

メモリー

FAMILY

5619219

4962527

656692

モデム/Fax

FAMILY

5575726

5162879

412847

CD/DVD

FAMILY

16129497

12510832

3618664

ポータブルPC

FAMILY

18338225

17938502

399723

連結演算子

連結演算子(||)は、テキスト式を組み合せます。

構文

operand || operand

例

'The date today is: ' || sysdateは、The date today is: 23-AUG-06などのテキスト文字列を生成します。

次の例は、製品ディメンションのレベル名とディメンション・キーを連結して、識別子を作成します。

PRODUCT.LEVEL_NAME || ' ' || PRODUCT.DIM_KEY

レベル

ディメンション・キー

識別子

CLASS

HRD

CLASS HRD

FAMILY

DTPC

FAMILY DTPC

FAMILY

MON

FAMILY MON

FAMILY

MEM

FAMILY MEM

FAMILY

MOD

FAMILY MOD

FAMILY

DISK

FAMILY DISK

FAMILY

LTPC

FAMILY LTPC

条件

条件は、1つ以上の式および論理(ブール)演算子の組合せを指定したものです。OLAP式構文には、次のタイプの条件があります。

- 単純比較条件

- グループ比較条件

- 範囲条件

- 複数条件

- 否定条件

- 特殊条件

- パターン一致条件

戻り値

NUMBER (0=FALSE, 1=TRUE)

単純比較条件

比較条件は、2つの式を比較します。

次の比較演算子を使用できます。

表1-6 単純比較演算子

演算子

説明

>

次より大きい

>=

次より大きいか等しい

<

次より小さい

<=

次より小さいか等しい

=

等しい

!= ^= <>

等しくない

構文

expr { > | >= | < | <= | = | != | ^= | <> } expr

引数

expr: 任意の式です。

例

5 > 3はTrue、4 != 5はTrue、6 >= 9はFalseです。

グループ比較条件

グループ比較条件は、リストまたは副問合せ内の任意またはすべてのメンバーの比較方法を指定します。

次の比較演算子を使用できます。

表1-7 グループ比較演算子

演算子

説明

>

次より大きい

>=

次より大きいか等しい

<

次より小さい

<=

次より小さいか等しい

=

等しい

!= ^= <>

等しくない

ANY SOME

リストの1つ以上の値が一致する場合はTrueを返し、値が一致しない場合はFalseを返します。

ALL

リストのすべての値が一致する場合はTrueを返し、1つ以上の値が一致しない場合はFalseを返します。

構文

expr
{ = | != | ^= | <> | > | < | >= | <= }
{ ANY | SOME | ALL }
({ expression_list | subquery })

例

5 <= ALL (5, 10, 15)はTrue、5 <> ANY (5, 10, 15) はTrueです。

階層リレーションの条件

階層リレーションの条件は、階層メンバーのメンバー自身または階層の別のメンバーに対する関係の比較を指定します。

構文

expr1 IS [ NOT ]
{ PARENT
| CHILD
| ANCESTOR
| ROOT_ANCESTOR
| DESCENDANT
| LEAF_DESCENDANT
| RELATIVE
}
[ OR SELF ] OF expr2 WITHIN hierarchy

引数

expr1は任意の式であり、リテラルまたは列を含み、ディメンション・メンバーに解決されます。

PARENTは、expr1をexpr2の親として比較します。

CHILDは、expr1をexpr2の子として比較します。

ANCESTORは、expr1をexpr2の祖先として比較します。

ROOT_ANCESTORは、expr1をexpr2の最上位の祖先として比較します。

DESCENDANTは、expr1をexpr2の子孫として比較します。

LEAF_DESCENDANTは、expr1をexpr2の子を持たない子孫として比較します。

RELATIVEは、expr1をexpr2と共通の親を持つディメンション・メンバーとして比較します。

OR SELFは、expr1をexpr2と同じディメンション・メンバーとして比較します。

expr2は任意の式であり、リテラルまたは列を含み、ディメンション・メンバーに解決されます。

階層とは、expr1とexpr2の関係を判断する場合に考慮する階層であり、dimension_name.hierarchy_name形式(PRODUCT.PRIMARYなど)、またはowner.dimension_name.hierarchy_name形式(GLOBAL.PRODUCT.PRIMARYなど)で表されます。

例

TIME.DIM_KEY IS CHILD OR SELF OF 'FY2008' WITHIN TIME.FISCAL
'FY2008' IS ROOT_ANCESTOR OR SELF OF TIME.DIM_KEY WITHIN TIME.FISCAL
'MEMORY' IS NOT ANCESTOR OF PRODUCT.DIM_KEY WITHIN GLOBAL.PRODUCT.PRIMARY

範囲条件

BETWEEN演算子は、値が、特定の値範囲内にあるかどうかをテストします。テストしている値が下限値以上かつ上限値以下であれば、Trueを返します。

構文

expr [ NOT ] BETWEEN expr AND expr

例

7 NOT BETWEEN 10 AND 15はTrueです。

複数条件

論理積は、1つの式と2つの条件を比較します。

表1-8 論理積

演算子

説明

AND

両方の構成条件がTrueである場合にTrueを返します。条件のいずれかがFalseである場合はFalseを返します。

OR

構成条件のいずれかがTrueである場合にTrueを返します。条件の両方がFalseである場合はFalseを返します。

構文

expr operator condition1 { AND | OR } condition2

例

5 < 7 AND 5 > 3 はTrue、5 < 3 OR 10 < 15はTrueです。

否定条件

NOT演算子は、条件の意味を逆転させます。条件がfalseの場合はtrueを返します。条件がTrueの場合はFalseを返します。

構文

NOT {BETWEEN | IN | LIKE | NULL }

例

5 IS NOT NULLはTrueで、5 NOT IN (5, 10, 15)はFalseです。

特殊条件

IS演算子は、NULL、無限大、数値以外の値などの特殊な条件をテストします。

表1-9 特殊条件演算子

演算子

説明

IS INFINITE

式が無限の場合はTrueを返し、無限でない場合はFalseを返します。マッピング専用です。

IS NAN

式が数値でない場合はTrueを返し、数値の場合はFalseを返します。マッピング専用です。

IS NULL

式がNULLである場合はTrueを返し、NULLでない場合はFalseを返します。

構文

expr IS [ NOT ] NULL

例

13 IS NOT NULLはTrueです。

パターン一致条件

パターン一致条件は文字データを比較します。

LIKE演算子

LIKE演算子は、パターン一致を使用するテストを指定します。等号演算子(=)が1つの文字値と別の文字値を完全に一致させるのに対し、LIKE演算子では特殊パターン・マッチング(ワイルドカード)文字で定義されるパターンの一致が可能です。

次のLIKE演算子から選択できます。

表1-10 LIKEパターン一致演算子

演算子

説明

LIKE

入力キャラクタ・セットの文字を使用します。

LIKEC

完全なUnicodeキャラクタを使用します。Unicode補助文字を2文字として扱います。

LIKE2

UCS2コード・ポイントを使用します。Unicode補助文字を1文字として扱います。

LIKE4

UCS4コード・ポイントを使用します。複合文字を1文字として扱います。

構文

char1 [ NOT ] ( LIKE | LIKEC | LIKE2 | LIKE4 )
char2 [ ESCAPE esc_char ]

引数

char1は、検索値のテキスト式です。

char2は、パターンのテキスト式です。パターンには、次のワイルドカード文字を含めることができます。

- アンダースコア(_)は、値の中の1文字(マルチバイトのキャラクタ・セットでの1バイトとは異なる)に完全に一致します。

- パーセント記号(%)は、値の中の0 (ゼロ)以上の文字(マルチバイトのキャラクタ・セットでのバイトとは異なる)と一致します。「%」は、NULLには一致しません。

esc_charは、通常はリテラルの、1文字長のテキスト式です。このエスケープ・キャラクタは、パターンの中のアンダースコアやパーセント記号を、ワイルドカード文字ではなくリテラル文字として識別します。また、エスケープ文字自体を検索する場合は、その文字を続けて入力してください。たとえば、@がエスケープ文字である場合、@%を使用して%を検索し、@@を使用して@を検索できます。

例

'Ducks' LIKE 'Duck_'および'Ducky' LIKE 'Duck_'はTrueです。

'Duckling' LIKE 'Duck_'はFalseです。

'Duckling' LIKE 'Duck%'はTrueです。

リテラル式

OLAP式構文には、文字列、数値およびNULLの3つのタイプのリテラル式があります。その他のデータ型は、TO_DATEなどの変換関数を使用して作成する必要があります。

テキスト・リテラル、文字リテラルおよび文字列という用語は、同じ意味で使用できます。オブジェクト名と区別するため、必ず一重引用符で囲みます。

例

'A Literal Text String'

'A Literal Text String with ''Quotes '''

'A Literal Text String
That Crosses Into a Second Line'

2

2.4

+1

-1

NULL

CASE式

CASE式では、IF ... THEN ... ELSE論理を式に使用できます。

単純CASE式では、CASEは、exprがcomparison_exprに等しい最初のWHEN ... THENペアを探し、return_exprを返します。この条件に合致するWHEN ... THENペアがなく、ELSE句が存在する場合、CASEはelse_exprを返します。存在しない場合、CASEはNULLを戻します。

検索CASE式では、CASEはconditionがtrueであることが見つかるまで左から右に検索し、return_exprを返します。conditionがtrueであることが見つからず、ELSE句が存在する場合、CASEはelse_exprを返します。存在しない場合、CASEはNULLを戻します。

戻り値

else_expression引数と同じです。

構文

CASE { simple_case_expression
| searched_case_expression
}
[ ELSE else_expression ]
END

simple_case_expression::=
expr WHEN comparison_expr
THEN return_expr
[ WHEN comparison_expr
THEN return_expr ]...

searched_case_expression::=
WHEN condition THEN return_expr
[ WHEN condition THEN return_expr ]...

引数

exprは、テストされる基準の式です。

comparison_exprは、exprをテストする対象の式です。exprと同じ基本データ型(数値またはテキスト)である必要があります。

conditionは、条件式です。

return_exprは、一致が見つかった場合、あるいは条件がtrueである場合に返される値です。

例

次の文は、PRODUCTディメンションのPACKAGE属性がnullであるか値を持つかに応じて、Single ItemまたはValue Packを返します。

CASE PRODUCT.PACKAGE WHEN NULL THEN 'Single Item'  ELSE 'Value Pack'END

製品

パッケージ

カテゴリ

1.44MB External 3.5" Diskette

Executive

Value Pack

1GB USB Drive

--

Single Item

512MB USB Drive

--

Single Item

56Kbps V.90 Type II Modem

Executive

Value Pack

56Kbps V.92 Type II Fax/Modem

Laptop Value Pack

Value Pack

Deluxe Mouse

Executive

Value Pack

Envoy Ambassador

--

Single Item

Envoy Executive

Executive

Value Pack

Envoy External Keyboard

Executive

Value Pack

Envoy Standard Laptop

Value Pack

Value Pack

External - DVD-RW - 8X

Executive

Value Pack

External 101-key keyboard

Multimedia

Value Pack

External 48X CD-ROM

--

Single Item

Internal - DVD-RW - 6X

Multimedia

Value Pack

次の文は、ユニット価格を20%上げて、価格とコストの差が10%未満の場合はドル単位に切り捨てます。そうでない場合は現在のユニット価格を返します。

CASE
WHEN PRICE_CUBE.UNIT_PRICE < PRICE_CUBE.UNIT_COST * 1.1
THEN TRUNC(PRICE_CUBE.UNIT_COST * 1.2)  ELSE PRICE_CUBE.UNIT_PRICE
END

製品

コスト

価格

1GB USB Drive

483.55

546.83

512MB USB Drive

234.69

275.91

56Kbps V.90 Type II Modem

135.72

158.58

56Kbps V.92 Type II Fax/Modem

95.01

111.08

Envoy Ambassador

2686.01

2850.88

Envoy Executive

2799.80

2943.96

Envoy Standard

1933.82

1921.62

External - DVD-RW - 8X

263.83

300.34

External 48X CD-ROM

223.11

254.15

Internal - DVD-RW - 6X

134.46

160.18

Internal 48X CD-ROM

108.32

127.54

Internal 48X CD-ROM USB

46.00

68.54

Monitor- 17"Super VGA

228.53

269.70

Monitor- 19"Super VGA

445.04

504.84

Sentinel Financial

1685.72

1764.14

Sentinel Multimedia

1849.17

1932.54

Sentinel Standard

1572.98

1610.53

次の例は、前年の販売に1.06を乗算して6%増やすことにより、販売予算の計算済メジャーを作成します。すべてのディメンションの詳細レベルは計算から除外されます。予算は、2006年以降のデータのみ使用して予測されます。

CASE
WHEN TIME.END_DATE >= TO_DATE('01-JAN-2006')
AND TIME.LEVEL_NAME IN ('CALENDAR_YEAR', 'CALENDAR_QUARTER')
AND PRODUCT.LEVEL_NAME != 'ITEM'
AND CUSTOMER.LEVEL_NAME IN ('TOTAL', 'REGION', 'WAREHOUSE')
THEN TRUNC(LAG(UNITS_CUBE.SALES, 1) OVER HIERARCHY
(TIME.CALENDAR BY ANCESTOR AT LEVEL TIME.CALENDAR.CALENDAR_YEAR
POSITION FROM BEGINNING) * 1.06)
ELSE NULL
END

製品

時間

販売

ハードウェア

Q1.05

28172590

ハードウェア

Q2.05

34520379

ハードウェア

Q3.05

29466573

ハードウェア

Q4.05

32031795

ハードウェア

Q1.06

32711891

ハードウェア

Q2.06

33637473

ハードウェア

Q3.06

29227635

ハードウェア

Q4.06

31319881

ハードウェア

Q1.07

--

ハードウェア

Q2.07

--

ハードウェア

Q3.07

--

ハードウェア

Q4.07

--

修飾データ参照(QDR)

修飾データ参照(QDR)は、問合せの継続中ディメンション・オブジェクトを1つ以上のディメンション内の1つのメンバーに制限します。

構文

expression [ qualifier [ , qualifier]... ]

qualifier::=

dimension_id = member_expression

注意: 太字で示された外側の大カッコは構文の一部です。この場合は、オプションの引数を示すものではありません。

引数

expressionはディメンション式で、通常はメジャーの名前です。

dimension_idはexpressionのキューブ・ディメンションです。

member_expressionはdimension_idの単一メンバーに解決されます。

例

global.sales[global.time = 'CY2007']は、2007年の販売値を返します。

sales[customer = 'US', time = 'CY2007']は、2007年の米国のみの販売値を返します。

2 OLAP関数

OLAP関数はSQL分析関数の構文を拡張します。この構文はSQL開発者およびDBAにとって使い慣れたものであるので、独自のOLAP言語およびAPIよりも容易に採用できます。OLAP関数を使用して、ランク、シェア、前期間および将来期間、現在までの期間、平行期間、移動集計、累積集計などの、すべての標準の計算済メジャーを作成できます。

この章ではOLAP関数について説明します。内容は次のとおりです。

- OLAP関数(アルファベット順)

- OLAP関数(カテゴリ別)

OLAP関数(アルファベット順)

AVERAGE_RANK
AVG
COUNT
DENSE_RANK
HIER_ANCESTOR
HIER_CHILD_COUNT
HIER_DEPTH
HIER_LEVEL
HIER_ORDER
HIER_PARENT
HIER_TOP
LAG
LAG_VARIANCE
LAG_VARIANCE_PERCENT
LEAD
LEAD_VARIANCE
LEAD_VARIANCE_PERCENT
MAX
MIN
OLAP_DML_EXPRESSION
RANK
ROW_NUMBER
SHARE
SUM

OLAP関数(カテゴリ別)

OLAP関数は、次のカテゴリにグループ化されます。

- 集計関数

- 分析関数

- 階層関数

- LAG関数

- OLAP DML関数

- ランク関数

- シェア関数

- ウィンドウ関数

集計関数

AVERAGE_RANK
AVG
COUNT
DENSE_RANK
MAX
MIN
RANK
SUM

分析関数

AVERAGE_RANK
AVG
COUNT
DENSE_RANK
LAG
LAG_VARIANCE
LEAD_VARIANCE_PERCENT
MAX
MIN
RANK
ROW_NUMBER
SUM

階層関数

HIER_ANCESTOR
HIER_CHILD_COUNT
HIER_DEPTH
HIER_LEVEL
HIER_ORDER
HIER_PARENT
HIER_TOP

LAG関数

LAG
LAG_VARIANCE
LAG_VARIANCE_PERCENT
LEAD
LEAD_VARIANCE
LEAD_VARIANCE_PERCENT

OLAP DML関数

OLAP_DML_EXPRESSION

ランク関数

AVERAGE_RANK
DENSE_RANK
RANK
ROW_NUMBER

シェア関数

SHARE

ウィンドウ関数

AVG
COUNT
MAX
MIN
SUM

AVERAGE_RANK

AVERAGE_RANKは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。

AVERAGE_RANKでは、同じ値には同じ平均ランクが割り当てられます。たとえば、5つのディメンション番号に対して、AVERAGE_RANKから、1、2、3.5、3.5、5が返されることがあります。

戻り値

NUMBER

構文

AVERAGE_RANK ( ) OVER (rank_clause)

rank_clause::=

{ DIMENSION dimension_id | HIERARCHY hierarchy_id }
ORDER BY order_by_clause [, order_by_clause]...
[ WITHIN { LEVEL
| PARENT
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

order_by_clause::=

expression [ASC | DESC] [NULLS {FIRST | LAST}]

引数

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

ORDER BY

ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY句を追加することができます。

expression

ランクの基準として使用する値を指定します。

ASC | DESC

最小値から最大値(昇順)または最大値から最小値(降順)の順にランクをソートします。

NULLS {FIRST | LAST}

NULL値を含む数を最初にリストするか最後にリストするかを決定します。

WITHIN

一連の関連するディメンション・メンバーをランク付けするために選択します。

LEVEL: 同じレベルのすべてのメンバーをランク付けします。

PARENT: 同じ親を持つ同一レベルのメンバーをランク付けします。

ANCESTOR: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

例

次の例は、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-02)が同じ値と同じランク(6.5)を持つため、7にランク付けされている月はないことに注意してください。

AVERAGE_RANK() OVER (HIERARCHY TIME.CALENDAR ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)

製品

時間

コスト

平均ランク

Deluxe Mouse

MAR-02

24.05

1

Deluxe Mouse

APR-02

23.95

2

Deluxe Mouse

FEB-02

23.94

3

Deluxe Mouse

AUG-02

23.88

4

Deluxe Mouse

MAY-02

23.84

5

Deluxe Mouse

JAN-02

23.73

6.5

Deluxe Mouse

JUL-02

23.73

6.5

Deluxe Mouse

JUN-02

23.72

8

Deluxe Mouse

SEP-02

23.71

9

Deluxe Mouse

NOV-02

23.65

10

Deluxe Mouse

DEC-02

23.62

11

Deluxe Mouse

OCT-02

23.37

12

関連トピック

DENSE_RANK、RANK、ROW_NUMBER

AVG

AVGは、時間ディメンションで計算した値を選択して平均を返します。この関数を使用して、累積平均と移動平均を作成します。

GREGORIANリレーションは、時間ディメンションにグレゴリオ暦を追加します。このリレーションは、会計や非標準の階層での計算に便利です。

戻り値

NUMBER

構文

AVG (value_expr) OVER (window_clause)

window_clause::=

[ { DIMENSION dimension_id | HIERARCHY hierarchy_id } ]
BETWEEN preceding_boundary | following_boundary
[WITHIN { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

preceding_boundary::=

{UNBOUNDED PRECEDING | expression PRECEDING} AND
{ CURRENT MEMBER
| expression {PRECEDING | FOLLOWING}
| UNBOUNDED FOLLOWING
}

following_boundary::=

{CURRENT MEMBER | expression FOLLOWING} AND
{ expression FOLLOWING
| UNBOUNDED FOLLOWING
}

引数

value_expr

計算する値を含むディメンション式。

dimension_id

デフォルト階層を使用して値が計算される時間ディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

boundary

preceding_boundaryおよびfollowing_boundaryは、ディメンションまたは階層で特定されるグループ内の期間の範囲を特定します。

UNBOUNDED: グループの最初の期間で始まるか、最後の期間で終わります。

CURRENT MEMBER: 現在の期間の計算を開始または終了します。

expression

数値は、範囲を開始するまたは終了する、現在の期間から特定の距離にある期間を示します。

WITHIN副句

計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

範囲

説明

LEVEL

同一レベルのすべての期間を計算します。(デフォルト)

PARENT

同じ親を持つ同一レベルの期間を計算します。

GREGORIAN YEAR

同じ年(グレゴリオ暦)の期間を計算します。

GREGORIAN QUARTER

同じ四半期(グレゴリオ暦)の期間を計算します。

GREGORIAN MONTH

同じ月(グレゴリオ暦)の期間を計算します。

GREGORIAN WEEK

同じ週(グレゴリオ暦)の期間を計算します。

ANCESTOR

指定したレベルで、同じ祖先を持つ同一レベルの期間を含めます。

例

次の例は、各親の中の累積平均を計算します。データの選択は、2005と2006のカレンダ年の中での四半期の累積平均を示します。

AVG(GLOBAL.UNITS_CUBE.UNITS) OVER (HIERARCHY GLOBAL.TIME.CALENDAR BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN PARENT)

時間

親

ユニット

平均

Q1.05

CY2005

143607

143607

Q2.05

CY2005

138096

140852

Q3.05

CY2005

138953

140219

Q4.05

CY2005

145062

141430

Q1.06

CY2006

146819

146819

Q2.06

CY2006

145233

146026

Q3.06

CY2006

143572

145208

Q4.06

CY2006

149305

146232

関連トピック

COUNT、MAX、MIN、SUM

COUNT

COUNTは、時間ディメンションの選択メンバーによって識別されるデータ値の数を計算します。

GREGORIANリレーションは、時間ディメンションにグレゴリオ暦を追加します。このリレーションは、会計や非標準の階層での計算に便利です。

戻り値

NUMBER

構文

COUNT (value_expr) OVER (window_clause)

window_clause::=

{ DIMENSION dimension_id | HIERARCHY hierarchy_id }
BETWEEN preceding_boundary AND following_boundary
[WITHIN { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

preceding_boundary::=

{UNBOUNDED PRECEDING | expression PRECEDING} AND
{ CURRENT MEMBER
| expression {PRECEDING | FOLLOWING}
| UNBOUNDED FOLLOWING
}

following_boundary::=

{CURRENT MEMBER | expression FOLLOWING} AND
{ expression FOLLOWING
| UNBOUNDED FOLLOWING
}

引数

value_expr

計算する値を含むディメンション式。

dimension_id

デフォルト階層を使用して値が計算される時間ディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

boundary

preceding_boundaryおよびfollowing_boundaryは、ディメンションまたは階層で特定されるグループ内の期間の範囲を特定します。

UNBOUNDED: グループの最初の期間で始まるか、最後の期間で終わります。

CURRENT MEMBER: 現在の期間の計算を開始または終了します。

expression

数値は、範囲を開始するまたは終了する、現在の期間から特定の距離にある期間を示します。

WITHIN副句

計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

範囲

説明

LEVEL

同一レベルのすべての期間を計算します。(デフォルト)

PARENT

同じ親を持つ同一レベルの期間を計算します。

GREGORIAN YEAR

同じ年(グレゴリオ暦)の期間を計算します。

GREGORIAN QUARTER

同じ四半期(グレゴリオ暦)の期間を計算します。

GREGORIAN MONTH

同じ月(グレゴリオ暦)の期間を計算します。

GREGORIAN WEEK

同じ週(グレゴリオ暦)の期間を計算します。

ANCESTOR

指定したレベルで、同じ祖先を持つ同一レベルの期間を含めます。

例

この例では、現在の期間までを含む、同じレベルと同じ年の期間数を総計します。選択したデータは、年の各月数を表示します。

COUNT(GLOBAL.UNITS_CUBE.UNITS) OVER (HIERARCHY GLOBAL.TIME.CALENDAR BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_YEAR)

時間

ユニット

COUNT

JAN-06

47776

1

FEB-06

47695

2

MAR-06

51348

3

APR-06

47005

4

MAY-06

52809

5

JUN-06

45419

6

JUL-06

48388

7

AUG-06

48830

8

SEP-06

46354

9

OCT-06

47411

10

NOV-06

46842

11

DEC-06

55052

12

関連トピック

AVG、MAX、MIN、SUM

DENSE_RANK

DENSE_RANKは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。

DENSE_RANKは、同じ値に同じ最小ランクを割り当て、結果を順次リストで返します。結果のランク数は、リスト中の値の数よりも少なくなることがあります。たとえば、DENSE_RANKは5つのディメンション・メンバーに対して1、2、3、3、4を返すことがあります。

戻り値

NUMBER

構文

DENSE_RANK ( ) OVER (rank_clause)

rank_clause::=

{ DIMENSION dimension_id | HIERARCHY hierarchy_id }
ORDER BY order_by_clause [, order_by_clause]...
[ WITHIN { LEVEL
| PARENT
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

order_by_clause::=

expression [ASC | DESC] [NULLS {FIRST | LAST}]

引数

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

ORDER BY

ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY句を追加することができます。

expression

ランクの基準として使用する値を指定します。

ASC | DESC

最小値から最大値(昇順)または最大値から最小値(降順)の順にランクをソートします。

NULLS {FIRST | LAST}

NULL値を含む数を最初にリストするか最後にリストするかを決定します。

WITHIN

一連の関連するディメンション・メンバーをランク付けするために選択します。

LEVEL: 同じレベルのすべてのメンバーをランク付けします。

PARENT: 同じ親を持つ同一レベルのメンバーをランク付けします。

ANCESTOR: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

例

次の例は、デフォルトのカレンダ階層を使用して、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-2)が同じ値と同じランク(6)を持ちますが、ランキングはJUN-02に対して7から継続されることに注意してください。

DENSE_RANK() OVER (DIMENSION "TIME" ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)

製品

時間

コスト

Denseランク

Deluxe Mouse

MAR-02

24.05

1

Deluxe Mouse

APR-02

23.95

2

Deluxe Mouse

FEB-02

23.94

3

Deluxe Mouse

AUG-02

23.88

4

Deluxe Mouse

MAY-02

23.84

5

Deluxe Mouse

JAN-02

23.73

6

Deluxe Mouse

JUL-02

23.73

6

Deluxe Mouse

JUN-02

23.72

7

Deluxe Mouse

SEP-02

23.71

8

Deluxe Mouse

NOV-02

23.65

9

Deluxe Mouse

DEC-02

23.62

10

Deluxe Mouse

OCT-02

23.37

11

関連トピック

AVERAGE_RANK、RANK、ROW_NUMBER

HIER_ANCESTOR

HIER_ANCESTORは、階層の特定のレベルで、階層のすべてのメンバーまたは特定のメンバーの祖先を返します。階層は、レベル・ベースである必要があります。

戻り値

VARCHAR2

構文

HIER_ANCESTOR(
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id}
{DIMENSION LEVEL dim_level_id | HIERARCHY LEVEL hier_level_id} )

引数

member_expression

祖先が返される、階層内のディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idの祖先のレベル。

hier_level_id

hierarchy_idの祖先のレベル。

例

次の例では、時間ディメンションのデフォルト・カレンダ階層のメンバーについてカレンダ四半期レベルでの祖先を返します。

HIER_ANCESTOR(DIMENSION "TIME" DIMENSION LEVEL TIME.CALENDAR_QUARTER)

時間

祖先

2006

--

Q1.06

CY2006.Q1

Q2.06

CY2006.Q2

Q3.06

CY2006.Q3

Q4.06

CY2006.Q4

JAN-06

CY2006.Q1

FEB-06

CY2006.Q1

MAR-06

CY2006.Q1

APR-06

CY2006.Q2

MAY-06

CY2006.Q2

JUN-06

CY2006.Q2

JUL-06

CY2006.Q3

AUG-06

CY2006.Q3

SEP-06

CY2006.Q3

OCT-06

CY2006.Q4

NOV-06

CY2006.Q4

DEC-06

CY2006.Q4

次の例は、顧客ディメンションのマーケット階層の顧客マーケット・セグメント・レベルでの米国労働省の祖先としてGOVを返します。

HIER_ANCESTOR('US DPT LBR' WITHIN HIERARCHY CUSTOMER.MARKET DIMENSION LEVEL CUSTOMER.MARKET_SEGMENT)

HIER_CHILD_COUNT

HIER_CHILD_COUNTは、階層のすべてのディメンションまたは特定のメンバーの子の数を返します。階層は、レベル・ベースと値ベースのいずれも可能です。

戻り値

NUMBER

構文

HIER_CHILD_COUNT (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

次の例では、時間ディメンションのデフォルト階層の各メンバーの子の数を返します。

HIER_CHILD_COUNT(DIMENSION "TIME")

時間

子

2006

4

Q1.06

3

Q2.06

3

Q3.06

3

Q4.06

3

JAN-06

0

FEB-06

0

MAR-06

0

APR-06

0

MAY-06

0

JUN-06

0

JUL-06

0

AUG-06

0

SEP-06

0

OCT-06

0

NOV-06

0

DEC-06

0

次の例では、顧客ディメンションのマーケット階層内の政府の子の数として8を返します。

HIER_CHILD_COUNT('GOV' WITHIN HIERARCHY CUSTOMER.MARKET)

HIER_DEPTH

HIER_DEPTHは、0が最上位レベルである階層のすべてのメンバーまたは特定のメンバーのレベルの深さを表す数を返します。階層は、レベル・ベースと値ベースのいずれも可能です。

戻り値

NUMBER

構文

HIER_DEPTH (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

次の例では、時間ディメンションのデフォルト階層の各メンバーの深さを返します。

HIER_DEPTH(DIMENSION "TIME")

時間

深さ

2006

1

Q1.06

2

Q2.06

2

Q3.06

2

Q4.06

2

JAN-06

3

FEB-06

3

MAR-06

3

APR-06

3

MAY-06

3

JUN-06

3

JUL-06

3

AUG-06

3

SEP-06

3

OCT-06

3

NOV-06

3

DEC-06

3

次の例では、デフォルト顧客階層のイタリアの深さとして2を返します。

HIER_DEPTH('ITA' WITHIN DIMENSION CUSTOMER)

HIER_LEVEL

HIER_LEVELは、階層のすべてのメンバーまたは特定のメンバーのレベルを返します。階層は、レベル・ベースである必要があります。

戻り値

VARCHAR2

構文

HIER_LEVEL (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

次の例では、時間ディメンションのデフォルト階層の各メンバーのレベルを返します。

HIER_LEVEL(DIMENSION "TIME")

時間

レベル

2006

CALENDAR_YEAR

Q1.06

CALENDAR_QUARTER

Q2.06

CALENDAR_QUARTER

Q3.06

CALENDAR_QUARTER

Q4.06

CALENDAR_QUARTER

JAN-06

MONTH

FEB-06

MONTH

MAR-06

MONTH

APR-06

MONTH

MAY-06

MONTH

JUN-06

MONTH

JUL-06

MONTH

AUG-06

MONTH

SEP-06

MONTH

OCT-06

MONTH

NOV-06

MONTH

DEC-06

MONTH

次の例では、顧客ディメンションのマーケット階層のビジネス界のレベルとしてACCOUNTを返します。

HIER_LEVEL('BUSN WRLD' WITHIN HIERARCHY CUSTOMER.MARKET)

HIER_ORDER

HIER_ORDERは、親直下の子のディメンション・メンバーをソートし、各メンバーの連番を返します。

戻り値

NUMBER

構文

HIER_ORDER (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

この例では、時間ディメンションの値が順序付けされます。

HIER_ORDER(DIMENSION "TIME")

時間

順序

2006

138

Q1.06

139

JAN-06

140

FEB-06

141

MAR-06

142

Q2.06

143

APR-06

144

MAY-06

145

JUN-06

146

Q3.06

147

JUL-06

148

AUG-06

149

SEP-06

150

Q4.06

151

OCT-06

152

NOV-06

153

DEC-06

154

次の例では、顧客ディメンションのマーケット階層のビジネス界の順序番号として78を返します。

HIER_ORDER('BUSN WRLD' WITHIN HIERARCHY CUSTOMER.MARKET)

HIER_PARENT

HIER_PARENTは、階層のすべてのディメンション・メンバーまたは特定のメンバーの親を返します。階層は、レベル・ベースと値ベースのいずれも可能です。

戻り値

VARCHAR2

構文

HIER_PARENT (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

次の例では、時間ディメンションのデフォルト階層のすべてのメンバーの親を返します。

HIER_PARENT(DIMENSION GLOBAL.TIME)

時間

親

2006

TOTAL

Q1.06

CY2006

Q2.06

CY2006

Q3.06

CY2006

Q4.06

CY2006

JAN-06

CY2006.Q1

FEB-06

CY2006.Q1

MAR-06

CY2006.Q1

APR-06

CY2006.Q2

MAY-06

CY2006.Q2

JUN-06

CY2006.Q2

JUL-06

CY2006.Q3

AUG-06

CY2006.Q3

SEP-06

CY2006.Q3

OCT-06

CY2006.Q4

NOV-06

CY2006.Q4

DEC-06

CY2006.Q4

次の例では、顧客ディメンションのデフォルト階層内のイタリアの親としてEMEAを返します。

HIER_PARENT('ITA' WITHIN DIMENSION CUSTOMER)

HIER_TOP

HIER_TOPは、階層のすべてのメンバーまたは特定のメンバーの最上位の祖先を返します。階層は、レベル・ベースと値ベースのいずれも可能です。

戻り値

VARCHAR2

構文

HIER_TOP (
[member_expression] [WITHIN]
{DIMENSION dimension_id | HIERARCHY hierarchy_id} )

引数

member_expression

計算に使用される、階層内の1つのディメンション・メンバーを指定します。このオプションの引数を指定すると、結果がディメンション・メンバー間で変化しません。

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

例

次の例では、時間ディメンションのデフォルト階層の最上位メンバーを返します。

HIER_TOP(DIMENSION "TIME")

時間

最上位

2006

TOTAL

Q1.06

TOTAL

Q2.06

TOTAL

Q3.06

TOTAL

Q4.06

TOTAL

JAN-06

TOTAL

FEB-06

TOTAL

MAR-06

TOTAL

APR-06

TOTAL

MAY-06

TOTAL

JUN-06

TOTAL

JUL-06

TOTAL

AUG-06

TOTAL

SEP-06

TOTAL

OCT-06

TOTAL

NOV-06

TOTAL

DEC-06

TOTAL

次の例では、顧客ディメンションのデフォルト階層内のヨーロッパの最上位メンバーであるTOTALを返します。

HIER_TOP('EMEA' WITHIN DIMENSION CUSTOMER)

LAG

LAGは、過去の期間の値を返します。

戻り値

値式と同じデータ型

構文

LAG (lag_args) OVER (lag_clause)

lag_args::=

expression, offset [, {default_expression | CLOSEST} ]

lag_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ前の期間に戻るかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、後方に移動した場合の直後のメンバーです。

dimension_id

ラグを計算する時間ディメンションです。

hierarchy_id

ラグを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分前の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分前の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分前の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分前の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分前の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分前の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分前の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも前のoffset位置にある期間です。

例

次の例は、各期間の前年の値を返します。

LAG(UNITS_CUBE.UNITS, 1) OVER (HIERARCHY "TIME".CALENDAR ANCESTOR AT DIMENSION LEVEL "TIME".CALENDAR_YEAR)

時間

ユニット

前年

Q1.05

143607

146529

Q2.05

138096

143070

Q3.05

138953

148292

Q4.05

145062

149528

Q1.06

146819

143607

Q2.06

145233

138096

Q3.06

143572

138953

Q4.06

149305

145062

関連トピック

LAG_VARIANCE、LAG_VARIANCE_PERCENT、LEAD

LAG_VARIANCE

LAG_VARIANCEは、現行期間と過去の期間の値の差を返します。

戻り値

値式と同じデータ型

構文

LAG_VARIANCE (lag_args) OVER (lag_clause)

lag_args::=

expression, offset [, {default_expression | CLOSEST} ]

lag_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ前の期間に戻るかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、後方に移動した場合の直後のメンバーです。

dimension_id

ラグを計算する時間ディメンションです。

hierarchy_id

ラグを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分前の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分前の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分前の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分前の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分前の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分前の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分前の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも前のoffset位置にある期間です。

例

次の例は、現在の期間と前年の同等の期間の値の差を返します。

LAG_VARIANCE (GLOBAL.UNITS_CUBE.UNITS, 1) OVER (HIERARCHY GLOBAL.TIME.CALENDAR ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_YEAR)

時間

ユニット

前年

差異

Q1.05

143607

146529

-2922

Q2.05

138096

143070

-4974

Q3.05

138953

148292

-9339

Q4.05

145062

149528

-4466

Q1.06

146819

143607

3212

Q2.06

145233

138096

7137

Q3.06

143572

138953

4619

Q4.06

149305

145062

4243

関連トピック

LAG、LAG_VARIANCE_PERCENT、LEAD

LAG_VARIANCE_PERCENT

LAG_VARIANCE_PERCENTは、現行期間と過去の期間の値の差異率を返します。

戻り値

NUMBER

構文

LAG_VARIANCE_PERCENT (lag_args) OVER (lag_clause)

lag_args::=

expression, offset [, {default_expression | CLOSEST} ]

lag_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ前の期間に戻るかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、後方に移動した場合の直後のメンバーです。

dimension_id

ラグを計算する時間ディメンションです。

hierarchy_id

ラグを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分前の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分前の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分前の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分前の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分前の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分前の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分前の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも前のoffset位置にある期間です。

例

次の例は、現在の期間と前年の同等の期間の値の相違率を返します。

LAG_VARIANCE_PERCENT (GLOBAL.UNITS_CUBE.UNITS, 1) OVER (HIERARCHY GLOBAL.TIME.CALENDAR ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_YEAR)

時間

ユニット

前年

差異

パーセント

Q1.05

143607

146529

-2922

-.02

Q2.05

138096

143070

-4974

-.03

Q3.05

138953

148292

-9339

-.06

Q4.05

145062

149528

-4466

-.03

Q1.06

146819

143607

3212

.02

Q2.06

145233

138096

7137

.05

Q3.06

143572

138953

4619

.03

Q4.06

149305

145062

4243

.03

関連トピック

LAG、LAG_VARIANCE、LEAD

LEAD

LEADは、将来の期間に関する式の値を返します。

戻り値

値式と同じデータ型

構文

LEAD (lead_args) OVER (lead_clause)

lead_args::=

expression, offset [, {default_expression | CLOSEST} ]

lead_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ後の期間に進むかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、前方に移動した場合の直後のメンバーです。

dimension_id

リードを計算する時間ディメンションです。

hierarchy_id

リードを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分後の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分後の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分後の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分後の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分後の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分後の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分後の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも後のoffset位置にある期間です。

例

この計算は、カレンダ四半期に基づく次の期間の値を返します。この計算の出力例を「次の四半期」列に示します。

LEAD (GLOBAL.UNITS_CUBE.UNITS, 1, CLOSEST) OVER (DIMENSION GLOBAL.TIME BY ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_QUARTER)

時間

親

ユニット

次の四半期

2005

TOTAL

565718

--

Q1-05

CY2005

143607

138096

Q2-05

CY2005

138096

138953

Q3-05

CY2005

138953

145062

Q4-05

CY2005

145062

146819

Jan-05

CY2005.Q1

50098

40223

Feb-05

CY2005.Q1

43990

45477

Mar-05

CY2005.Q1

49519

52396

Apr-05

CY2005.Q2

40223

45595

May-05

CY2005.Q2

45477

46882

Jun-05

CY2005.Q2

52396

46476

Jul-05

CY2005.Q3

45595

47476

Aug-05

CY2005.Q3

46882

47496

Sep-05

CY2005.Q3

46476

50090

Oct-05

CY2005.Q4

47476

47776

Nov-05

CY2005.Q4

47496

47695

Dec-05

CY2005.Q4

50090

51348

関連トピック

LAG、LEAD_VARIANCE、LEAD_VARIANCE_PERCENT

LEAD_VARIANCE

LEAD_VARIANCEは、現行期間とオフセット期間の値の差を返します。

戻り値

値式と同じデータ型

構文

LEAD_VARIANCE (lead_args) OVER (lead_clause)

lead_args::=

expression, offset [, {default_expression | CLOSEST} ]

lead_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ後の期間に進むかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、前方に移動した場合の直後のメンバーです。

dimension_id

リードを計算する時間ディメンションです。

hierarchy_id

リードを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分後の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分後の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分後の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分後の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分後の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分後の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分後の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも後のoffset位置にある期間です。

例

この計算は、現在の値とカレンダ四半期に基づく次の期間の値の差を返します。この計算の出力例を「差異」列に示します。

LEAD_VARIANCE (GLOBAL.UNITS_CUBE.UNITS, 1, CLOSEST) OVER (DIMENSION GLOBAL.TIME BY ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_QUARTER)

時間

親

ユニット

次の四半期

差異

2005

TOTAL

565718

--

--

Q1-05

CY2005

143607

138096

5511

Q2-05

CY2005

138096

138953

-857

Q3-05

CY2005

138953

145062

-6109

Q4-05

CY2005

145062

146819

-1757

Jan-05

CY2005.Q1

50098

40223

9875

Feb-05

CY2005.Q1

43990

45477

-1487

Mar-05

CY2005.Q1

49519

52396

-2877

Apr-05

CY2005.Q2

40223

45595

-5372

May-05

CY2005.Q2

45477

46882

-1405

Jun-05

CY2005.Q2

52396

46476

5920

Jul-05

CY2005.Q3

45595

47476

-1881

Aug-05

CY2005.Q3

46882

47496

-614

Sep-05

CY2005.Q3

46476

50090

-3614

Oct-05

CY2005.Q4

47476

47776

-300

Nov-05

CY2005.Q4

47496

47695

-199

Dec-05

CY2005.Q4

50090

51348

-1258

関連トピック

LAG、LEAD、LEAD_VARIANCE_PERCENT

LEAD_VARIANCE_PERCENT

LEAD_VARIANCE_PERCENTは、現行期間とオフセット期間の値の相違率を返します。

戻り値

NUMBER

構文

LEAD_VARIANCE_PERCENT (lead_args) OVER (lead_clause)

lead_args::=

expression, offset [, {default_expression | CLOSEST} ]

lead_clause::=

[ {DIMENSION dimension_id | HIERARCHY hierarchy_id} ]
[ [BY] { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK | DAY}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
[POSITION FROM {BEGINNING | END}]
]

引数

expression

計算する値を含むディメンション式。

offset

現行期間からいくつ後の期間に進むかを表す数値式です。

default_expression

offsetで有効な期間が指定されない場合に返される値です。この句は、任意のデータ型の式、または近接を表すキーワードCLOSESTです。近接とは、前方に移動した場合の直後のメンバーです。

dimension_id

リードを計算する時間ディメンションです。

hierarchy_id

リードを計算する階層です。指定しない場合は、dimension_idのデフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

BY副句

BY副句はオフセットの計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

オフセット･ユニット

説明

LEVEL

現行メンバーよりもoffsetの期間数分後の、同一レベルのメンバーです。(デフォルト)

PARENT

現行メンバーよりもoffsetの期間数分後の、同じ親を持つ同一レベルのメンバーです。

GREGORIAN YEAR

開始日が、現行期間の開始日よりもoffsetの年数分後の、同一レベルの期間です。

GREGORIAN QUARTER

開始日が、現行期間の開始日よりもoffsetの四半期数分後の、同一レベルの期間です。

GREGORIAN MONTH

開始日が、現行期間の開始日よりもoffsetの月数分後の、同一レベルの期間です。

GREGORIAN WEEK

開始日が、現行期間の開始日よりもoffsetの週数分後の、同一レベルの期間です。

GREGORIAN DAY

開始日が、現行期間の開始日よりもoffsetの日数分後の、同一レベルの期間です。

ANCESTOR

現行期間と同じレベルにあり、祖先が現行期間の祖先よりも後のoffset位置にある期間です。

例

この計算は、現在の値とカレンダ四半期に基づく次の期間の値の相違率を返します。この計算の出力例を「パーセント」列に示します。

LEAD_VARIANCE_PERCENT (GLOBAL.UNITS_CUBE.UNITS, 1, CLOSEST) OVER (DIMENSION GLOBAL.TIME BY ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_QUARTER)

時間

親

ユニット

次の四半期

差異

パーセント

2005

TOTAL

565718

--

--

--

Q1-05

CY2005

143607

138096

5511

.04

Q2-05

CY2005

138096

138953

-857

-.01

Q3-05

CY2005

138953

145062

-6109

-.04

Q4-05

CY2005

145062

146819

-1757

-.01

Jan-05

CY2005.Q1

50098

40223

9875

.25

Feb-05

CY2005.Q1

43990

45477

-1487

-.03

Mar-05

CY2005.Q1

49519

52396

-2877

-.05

Apr-05

CY2005.Q2

40223

45595

-5372

-.12

May-05

CY2005.Q2

45477

46882

-1405

-.03

Jun-05

CY2005.Q2

52396

46476

5920

.13

Jul-05

CY2005.Q3

45595

47476

-1881

-.04

Aug-05

CY2005.Q3

46882

47496

-614

-.01

Sep-05

CY2005.Q3

46476

50090

-3614

-.07

Oct-05

CY2005.Q4

47476

47776

-300

-.01

Nov-05

CY2005.Q4

47496

47695

-199

0

Dec-05

CY2005.Q4

50090

51348

-1258

-.02

関連トピック

LAG、LEAD、LEAD_VARIANCE

MAX

MAXは、時間ディメンションで計算されたデータ値の中から最大の値を選択して返します。

GREGORIANリレーションは、時間ディメンションにグレゴリオ暦を追加します。このリレーションは、会計や非標準の階層での計算に便利です。

戻り値

NUMBER

構文

MAX (value_expr) OVER (window_clause)

window_clause::=

[ { DIMENSION dimension_id | HIERARCHY hierarchy_id } ]
BETWEEN preceding_boundary | following_boundary
[WITHIN { PARENT
| LEVEL
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

preceding_boundary::=

{UNBOUNDED PRECEDING | expression PRECEDING} AND
{ CURRENT MEMBER
| expression {PRECEDING | FOLLOWING}
| UNBOUNDED FOLLOWING
}

following_boundary::=

{CURRENT MEMBER | expression FOLLOWING} AND
{ expression FOLLOWING
| UNBOUNDED FOLLOWING
}

引数

value_expr

計算する値を含むディメンション式。

dimension_id

デフォルト階層を使用して値が計算される時間ディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

boundary

preceding_boundaryおよびfollowing_boundaryは、ディメンションまたは階層で特定されるグループ内の期間の範囲を特定します。

UNBOUNDED: グループの最初の期間で始まるか、最後の期間で終わります。

CURRENT MEMBER: 現在の期間の計算を開始または終了します。

expression

数値は、範囲を開始するまたは終了する、現在の期間から特定の距離にある期間を示します。

WITHIN副句

計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

範囲

説明

LEVEL

同一レベルのすべての期間を計算します。(デフォルト)

PARENT

同じ親を持つ同一レベルの期間を計算します。

GREGORIAN YEAR

同じ年(グレゴリオ暦)の期間を計算します。

GREGORIAN QUARTER

同じ四半期(グレゴリオ暦)の期間を計算します。

GREGORIAN MONTH

同じ月(グレゴリオ暦)の期間を計算します。

GREGORIAN WEEK

同じ週(グレゴリオ暦)の期間を計算します。

ANCESTOR

指定したレベルで、同じ祖先を持つ同一レベルの期間を含めます。

例

この例は、カレンダ年の移動最大値を計算します。

MAX(GLOBAL.UNITS_CUBE.UNITS) OVER (DIMENSION GLOBAL.TIME BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_YEAR)

時間

ユニット

最大値

JAN-06

47776

47776

FEB-06

47695

47776

MAR-06

51348

51348

APR-06

47005

51348

MAY-06

52809

52809

JUN-06

45419

52809

JUL-06

48388

52809

AUG-06

48830

52809

SEP-06

46354

52809

OCT-06

47411

52809

NOV-06

46842

52809

DEC-06

55052

55052

関連トピック

AVG、COUNT、MIN、SUM

MIN

MINは、時間ディメンションで計算されたデータ値の中から最小の値を選択して返します。

GREGORIANリレーションは、時間ディメンションにグレゴリオ暦を追加します。このリレーションは、会計や非標準の階層での計算に便利です。

戻り値

NUMBER

構文

MIN (value_expr) OVER (window_clause)

window_clause::=

[ { DIMENSION dimension_id | HIERARCHY hierarchy_id } ]
BETWEEN preceding_boundary | following_boundary
[WITHIN { LEVEL
| PARENT
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

preceding_boundary::=

{UNBOUNDED PRECEDING | expression PRECEDING} AND
{ CURRENT MEMBER
| expression {PRECEDING | FOLLOWING}
| UNBOUNDED FOLLOWING
}

following_boundary::=

{CURRENT MEMBER | expression FOLLOWING} AND
{ expression FOLLOWING
| UNBOUNDED FOLLOWING
}

引数

value_expr

計算する値を含むディメンション式。

dimension_id

デフォルト階層を使用して値が計算される時間ディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

boundary

preceding_boundaryおよびfollowing_boundaryは、ディメンションまたは階層で特定されるグループ内の期間の範囲を特定します。

UNBOUNDED: グループの最初の期間で始まるか、最後の期間で終わります。

CURRENT MEMBER: 現在の期間の計算を開始または終了します。

expression

数値は、範囲を開始するまたは終了する、現在の期間から特定の距離にある期間を示します。

WITHIN副句

計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

範囲

説明

LEVEL

同一レベルのすべての期間を計算します。(デフォルト)

PARENT

同じ親を持つ同一レベルの期間を計算します。

GREGORIAN YEAR

同じ年(グレゴリオ暦)の期間を計算します。

GREGORIAN QUARTER

同じ四半期(グレゴリオ暦)の期間を計算します。

GREGORIAN MONTH

同じ月(グレゴリオ暦)の期間を計算します。

GREGORIAN WEEK

同じ週(グレゴリオ暦)の期間を計算します。

ANCESTOR

指定したレベルで、同じ祖先を持つ同一レベルの期間を含めます。

例

この例は、現在のメンバーと同じカレンダ年のすべての後続メンバーの間の最小値を計算します。データの選択は、2006年の月の最小値を表示します。

MIN(GLOBAL.UNITS_CUBE.UNITS) OVER (DIMENSION GLOBAL.TIME BETWEEN CURRENT MEMBER AND UNBOUNDED FOLLOWING WITHIN ANCESTOR AT DIMENSION LEVEL GLOBAL.TIME.CALENDAR_YEAR)

時間

ユニット

最小値

JAN-06

47776

45419

FEB-06

47695

45419

MAR-06

51348

45419

APR-06

47005

45419

MAY-06

52809

45419

JUN-06

45419

45419

JUL-06

48388

46354

AUG-06

48830

46354

SEP-06

46354

46354

OCT-06

47411

46842

NOV-06

46842

46842

DEC-06

55052

55052

関連トピック

AVG、COUNT、MAX、SUM

OLAP_DML_EXPRESSION

OLAP_DML_EXPRESSIONは、OLAP DML言語の式を実行します。

戻り値

構文で指定されるデータ型

構文

OLAP_DML_EXPRESSION (expression, datatype)

引数

expression

関数またはプログラムの呼出しなど、OLAP DML言語の式です。

datatype

expressionからの戻り値のデータ型です。

例

この例では、OLAP_DML_EXPRESSION関数はOLAP DML RANDOM関数を実行して、1.05から1.10までのランダム数で計算済メジャーを生成します。

OLAP_DML_EXPRESSION('RANDOM(1.05, 1.10)', NUMBER)

時間

製品

ランダム

2005

ハードウェア

1.07663806

2005

ソフトウェア/その他

1.08295738

2006

ハードウェア

1.08707305

2006

ソフトウェア/その他

1.09730881

RANK

RANKは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。

RANKでは、同じ値には同じランクが割り当てられます。たとえば、5つのディメンション・メンバーに対して、RANKから、1、2、3、3、5が返されることがあります。

戻り値

NUMBER

構文

RANK ( ) OVER (rank_clause)

rank_clause::=

{ DIMENSION dimension_id | HIERARCHY hierarchy_id }
ORDER BY order_by_clause [, order_by_clause]...
[ WITHIN { PARENT
| LEVEL
| ANCESTOR AT { DIMENSION LEVEL dim_lvl_id
| HIERARCHY LEVEL hier_level_id
}
}
]

order_by_clause::=

expression [ASC | DESC] [NULLS {FIRST | LAST}]

引数

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合は、デフォルト階層が使用されます。

ORDER BY

ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY句を追加することができます。

expression

ランクの基準として使用する値を指定します。

ASC | DESC

最小値から最大値(昇順)または最大値から最小値(降順)の順にランクをソートします。

NULLS {FIRST | LAST}

NULL値を含む数を最初にリストするか最後にリストするかを決定します。

WITHIN

一連の関連するディメンション・メンバーをランク付けするために選択します。

PARENT: 同じ親を持つ同一レベルのメンバーをランク付けします。

LEVEL: 同じレベルのすべてのメンバーをランク付けします。

ANCESTOR: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

例

次の例は、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-02)が同じ値と同じランク(6)を持つため、7にランク付けされている月はないことに注意してください。

RANK() OVER (DIMENSION TIME.CALENDAR ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)

製品

時間

コスト

ランク

Deluxe Mouse

MAR-02

24.05

1

Deluxe Mouse

APR-02

23.95

2

Deluxe Mouse

FEB-02

23.94

3

Deluxe Mouse

AUG-02

23.88

4

Deluxe Mouse

MAY-02

23.84

5

Deluxe Mouse

JAN-02

23.73

6

Deluxe Mouse

JUL-02

23.73

6

Deluxe Mouse

JUN-02

23.72

8

Deluxe Mouse

SEP-02

23.71

9

Deluxe Mouse

NOV-02

23.65

10

Deluxe Mouse

DEC-02

23.62

11

Deluxe Mouse

OCT-02

23.37

12

関連トピック

AVERAGE_RANK、DENSE_RANK、ROW_NUMBER

ROW_NUMBER

ROW_NUMBERは、式の値に基づいてディメンションのメンバーをソートします。この関数は、ディメンション番号の順序番号を返します。

ROW_NUMBERでは、各ディメンション・メンバーに一意のランクが割り当てられます。同じ値でもランクは任意です。たとえば、ROW_NUMBERは、5つのディメンション番号に対して、すべてが同じ値であっても常に1、2、3、4、5を返します。

戻り値

NUMBER

構文

ROW_NUMBER ( ) OVER (rank_clause)

rank_clause::=

{ DIMENSION dimension_id | HIERARCHY hierarchy_id }
ORDER BY order_by_clause [, order_by_clause]...
[ WITHIN { PARENT
| LEVEL
| ANCESTOR AT { DIMENSION LEVEL dim_lvl_id
| HIERARCHY LEVEL hier_level_id
}
}
]

order_by_clause::=

expression [ASC | DESC] [NULLS {FIRST | LAST}]

引数

dimension_id

デフォルト階層を使用して値が計算されるディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合は、デフォルト階層が使用されます。

ORDER BY

ランクの基準を指定します。同順位となるものをさらにソートするために、ORDER BY句を追加することができます。

expression

ランクの基準として使用する値を指定します。

ASC | DESC

最小値から最大値(昇順)または最大値から最小値(降順)の順にランクをソートします。

NULLS {FIRST | LAST}

NULL値を含む数を最初にリストするか最後にリストするかを決定します。

WITHIN

一連の関連するディメンション・メンバーをランク付けするために選択します。

PARENT: 同じ親を持つ同一レベルのメンバーをランク付けします。

LEVEL: 同じレベルのすべてのメンバーをランク付けします。

ANCESTOR: 指定したレベルで、同じ祖先を持つ同一レベルのすべてのメンバーをランク付けします。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

例

次の例は、カレンダ年の期間をユニット・コスト別にランク付けします。2か月(JAN-02とJUL-02)が同じ値を持ちますが、連番(6と7)が割り当てられていることに注意してください。

ROW_NUMBER() OVER (HIERARCHY TIME.CALENDAR ORDER BY PRICE_CUBE.UNIT_COST DESC NULLS LAST WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)

製品

時間

コスト

行番号

Deluxe Mouse

MAR-02

24.05

1

Deluxe Mouse

APR-02

23.95

2

Deluxe Mouse

FEB-02

23.94

3

Deluxe Mouse

AUG-02

23.88

4

Deluxe Mouse

MAY-02

23.84

5

Deluxe Mouse

JAN-02

23.73

6

Deluxe Mouse

JUL-02

23.73

7

Deluxe Mouse

JUN-02

23.72

8

Deluxe Mouse

SEP-02

23.71

9

Deluxe Mouse

NOV-02

23.65

10

Deluxe Mouse

DEC-02

23.62

11

Deluxe Mouse

OCT-02

23.37

12

関連トピック

AVERAGE_RANK、DENSE_RANK、RANK

SHARE

SHAREは、現行ディメンション・メンバーに対する式の値の、同じディメンションの関連するメンバーの値に対する比率を計算します。この関数の引数によって、比率で使用される関連メンバーを指定します。

戻り値

NUMBER

構文

share_expression::=

SHARE (expression share_clause [share_clause]... )

share_clause::=

OF { DIMENSION dimension_id | HIERARCHY hierarchy_id }
{ PARENT
| TOP
| MEMBER 'member_name'
| DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}

引数

expression

計算する値を含むディメンション式。

dimension_id

expressionのディメンションです。計算ではデフォルト階層が使用されます。別の階層を使用する場合は、かわりにHIERARCHY引数を使用してください。

hierarchy_id

expressionのレベル階層です。

member_name

指定したディメンションまたは階層のメンバーです。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

シェアは次の式で計算されます。

キーワード

式

PARENT

現在のメンバー/親

TOP

現在のメンバー/ルート祖先

MEMBER

現在のメンバー/指定したメンバー

DIMENSION LEVEL

現在のメンバー/指定したレベルの祖先または現在のメンバーが指定したレベルよりも上の場合はNULLです。

例

次の例では、親メンバーに対する各製品のシェアが計算されます。結果は「SHARE_OF_PARENT」列に示されています。

(SHARE(UNITS_CUBE.SALES OF HIERARCHY PRODUCT.PRIMARY PARENT))*100

次の例では、Total Productに対する各製品のシェアが計算されます。結果は「SHARE_OF_TOP」列に示されています。

(SHARE(UNITS_CUBE.SALES OF HIERARCHY PRODUCT.PRIMARY TOP))*100

製品

親

販売

親に対するシェア

最上位に対するシェア

デスクトップPC

HRD

74556528

60

54

ポータブルPC

HRD

18338225

15

13

CD/DVD

HRD

16129497

13

12

メモリー

HRD

5619219

5

4

モデム/Fax

HRD

5575726

4

4

モニター

HRD

3972142

3

3

アクセサリ

SFT

6213535

49

5

オペレーティング・システム

SFT

4766857

37

3

ドキュメント

SFT

1814844

14

1

ハードウェア

TOTAL

124191336

91

91

ソフトウェア/その他

TOTAL

12795236

9

9

SUM

SUMは、時間ディメンションで計算された値から合計を選択して返します。SUM関数を使用して、現在までの期間の計算を作成できます。

GREGORIANリレーションは、時間ディメンションにグレゴリオ暦を追加します。このリレーションは、会計や非標準の階層での計算に便利です。

戻り値

NUMBER

構文

SUM (value_expr) OVER (window_clause)

window_clause::=

[ { DIMENSION dimension_id | HIERARCHY hierarchy_id } ]
BETWEEN preceding_boundary | following_boundary
[WITHIN { PARENT
| LEVEL
| GREGORIAN {YEAR | QUARTER | MONTH | WEEK}
| ANCESTOR AT { DIMENSION LEVEL dim_level_id
| HIERARCHY LEVEL hier_level_id
}
}
]

preceding_boundary::=

{UNBOUNDED PRECEDING | expression PRECEDING} AND
{ CURRENT MEMBER
| expression {PRECEDING | FOLLOWING}
| UNBOUNDED FOLLOWING
}

following_boundary::=

{CURRENT MEMBER | expression FOLLOWING} AND
{ expression FOLLOWING
| UNBOUNDED FOLLOWING
}

引数

value_expr

計算する値を含むディメンション式。

dimension_id

デフォルト階層を使用して値が計算される時間ディメンション。

hierarchy_id

値が計算される階層。代わりにdimension_idが使用される場合、デフォルト階層が使用されます。

dim_level_id

dimension_idのレベルの名前。

hier_level_id

hierarchy_idのレベルの名前。

boundary

preceding_boundaryおよびfollowing_boundaryは、ディメンションまたは階層で特定されるグループ内の期間の範囲を特定します。

UNBOUNDED: グループの最初の期間で始まるか、最後の期間で終わります。

CURRENT MEMBER: 現在の期間の計算を開始または終了します。

expression

数値は、範囲を開始するまたは終了する、現在の期間から特定の距離にある期間を示します。

WITHIN副句

計算に使用する期間の範囲を指定します。次は、キーワードの説明です。

範囲

説明

LEVEL

同一レベルのすべての期間を計算します。(デフォルト)

PARENT

同じ親を持つ同一レベルの期間を計算します。

GREGORIAN YEAR

同じ年(グレゴリオ暦)の期間を計算します。

GREGORIAN QUARTER

同じ四半期(グレゴリオ暦)の期間を計算します。

GREGORIAN MONTH

同じ月(グレゴリオ暦)の期間を計算します。

GREGORIAN WEEK

同じ週(グレゴリオ暦)の期間を計算します。

ANCESTOR

指定したレベルで、同じ祖先を持つ同一レベルの期間を含めます。

例

この例は、レベル内の現在の期間と次の期間の2つの値の合計を計算します。結果は「合計」列に示されています。

SUM(UNITS_CUBE.SALES) OVER (DIMENSION "TIME" BETWEEN 1 PRECEDING AND CURRENT MEMBER WITHIN LEVEL)

時間

販売

合計

Q1.04

146529

289599

Q2.04

143070

291362

Q3.04

148292

297820

Q4.04

149528

293135

Q1.05

143607

281703

Q2.05

138096

277049

Q3.05

138953

284015

Q4.05

145062

291881

次の例は、年初来の販売を計算します。

SUM(UNITS_CUBE.SALES) OVER (HIERARCHY TIME.CALENDAR BETWEEN UNBOUNDED PRECEDING AND CURRENT MEMBER WITHIN ANCESTOR AT DIMENSION LEVEL TIME.CALENDAR_YEAR)

時間

販売

販売YTD

JAN-05

12093518

12093518

FEB-05

10103162

22196680

MAR-05

9184658

31381338

APR-05

9185964

40567302

MAY-05

11640216

52207519

JUN-05

16816561

69024079

JUL-05

11110903

80134982

AUG-05

9475807

89610789

SEP-05

12030538

101641328

OCT-05

11135032

112776359

NOV-05

11067754

123844113

関連トピック

AVG、COUNT、MAX、MIN

3 行関数

OLAP行関数はディメンション・オブジェクトで使用されるためにSQL行関数の構文を拡張します。SQL行関数を使用するならば、この構文に見覚えがあるはずです。これらの関数は、キューブおよびキューブ・ディメンションへのロード時にリレーショナル・データで、および計算されたメジャーの作成時にOLAP関数と共に使用できます。

この章ではOLAPの行関数の式構文について説明します。内容は次のとおりです。

- 行関数(アルファベット順)

- 行関数(カテゴリ別)

行関数(アルファベット順)

A B C D E F G H I L M N O P R S T U V W

A

ABS
ACOS
ADD_MONTHS
ASCII
ASCIISTR
ASIN
ATAN
ATAN2
B

BIN_TO_NUM
BITAND
C

CAST
CEIL
CHARTOROWID
CHR
COALESCE
CONCAT
COS
COSH
CURRENT_DATE
CURRENT_TIMESTAMP
D

DBTIMEZONE
DECODE
E

EXP
EXTRACT (日時)
F

FLOOR
FROM_TZ
G

GREATEST
H

HEXTORAW
I

INITCAP
INSTR
L

LAST_DAY
LEAST
LENGTH
LN
LNNVL
LOCALTIMESTAMP
LOG
LOWER
LPAD
LTRIM
M

MOD
MONTHS_BETWEEN
N

NANVL
NEW_TIME
NEXT_DAY
NLS_CHARSET_ID
NLS_CHARSET_NAME
NLS_INITCAP
NLS_LOWER
NLS_UPPER
NLSSORT
NULLIF
NUMTODSINTERVAL
NUMTOYMINTERVAL
NVL
NVL2
O

ORA_HASH
P

POWER
R

RAWTOHEX
REGEXP_COUNT
REGEXP_INSTR
REGEXP_REPLACE
REGEXP_SUBSTR
REMAINDER
REPLACE
ROUND (日付)
ROUND (数値)
ROWIDTOCHAR
ROWIDTONCHAR
RPAD
RTRIM
S

SESSIONTIMEZONE
SIGN
SIN
SINH
SOUNDEX
SQRT
SUBSTR
SYS_CONTEXT
SYSDATE
SYSTIMESTAMP
T

TAN
TANH
TO_BINARY_DOUBLE
TO_BINARY_FLOAT
TO_CHAR (文字)
TO_CHAR (日時)
TO_CHAR (数値)
TO_DATE
TO_DSINTERVAL
TO_NCHAR (文字)
TO_NCHAR (日時)
TO_NCHAR (数値)
TO_NUMBER
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
TRANSLATE
TRANSLATE (USING)
TRIM
TRUNC (数値)
TZ_OFFSET
U

UID
UNISTR
UPPER
USER
V

VSIZE
W

WIDTH_BUCKET

行関数(カテゴリ別)

行関数は次のカテゴリに分けられます。

- 数値関数

- 文字を返す文字関数

- NLS文字関数

- 数値を返す文字関数

- 日時関数

- 一般的な比較関数

- 変換関数

- エンコードおよびデコード関数

- NULL関連の関数

- 環境ファンクションおよび識別子ファンクション

数値関数

数値関数は、数値の入力を受け取って数値を返します。

ABS
ACOS
ASIN
ATAN
ATAN2
BITAND
CEIL
COS
COSH
EXP
FLOOR
LN
LOG
MOD
NANVL
POWER
REMAINDER
ROUND(数値)
SIGN
SIN
SINH
SQRT
TAN
TANH
TRUNC(数値)
WIDTH_BUCKET

文字を返す文字関数

これらの関数は、文字の入力を受け取って文字を返します。

CHR
CONCAT
INITCAP
LOWER
LPAD
LTRIM
NLS_CHARSET_NAME
NLS_INITCAP
NLS_LOWER
NLS_UPPER
NLSSORT
REGEXP_REPLACE
REGEXP_SUBSTR
REPLACE
RPAD
RTRIM
SOUNDEX
SUBSTR
TRANSLATE
TRIM
UPPER

NLS文字関数

これらの関数はキャラクタ・セットに関する情報を返します。

NLS_CHARSET_ID
NLS_CHARSET_NAME

数値を返す文字関数

これらの関数は、文字の入力を受け取って数値を返します。

ASCII
INSTR
LENGTH
REGEXP_COUNT
REGEXP_INSTR

日時関数

これらの関数は、日付、タイムスタンプ、間隔の値を操作します。

ADD_MONTHS
CURRENT_DATE
CURRENT_TIMESTAMP
DBTIMEZONE
EXTRACT (日時)
FROM_TZ
LAST_DAY
LOCALTIMESTAMP
MONTHS_BETWEEN
NEW_TIME
NEXT_DAY
NUMTODSINTERVAL
NUMTOYMINTERVAL
ROUND (日付)
SESSIONTIMEZONE
SYSDATE
SYSTIMESTAMP
TO_CHAR (日時)
TO_DSINTERVAL
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
TZ_OFFSET

一般的な比較関数

これらの関数は値のセットの中で一番大きな値または小さな値を決定します。

GREATEST
LEAST

変換関数

これらの関数は、あるデータ型から別のデータ型に値を変更します。

ASCIISTR
BIN_TO_NUM
CAST
CHARTOROWID
HEXTORAW
NUMTODSINTERVAL
NUMTOYMINTERVAL
RAWTOHEX
ROWIDTOCHAR
ROWIDTONCHAR
TO_BINARY_DOUBLE
TO_BINARY_FLOAT
TO_CHAR (文字)
TO_CHAR (日時)
TO_CHAR (数値)
TO_DATE
TO_DSINTERVAL
TO_NCHAR (文字)
TO_NCHAR (日時)
TO_NCHAR (数値)
TO_NUMBER
TO_TIMESTAMP
TO_TIMESTAMP_TZ
TO_YMINTERVAL
TRANSLATE (USING)
UNISTR

エンコードおよびデコード関数

これらの関数は、各入力値に対し数値を返します。

DECODE
ORA_HASH
VSIZE

NULL関連の関数

これらの関数はNULLの処理を容易にします。

COALESCE
LNNVL
NANVL
NULLIF
NVL
NVL2

環境および識別子関数

これらの関数はインスタンスおよびセッションに関する情報を返します。

SYS_CONTEXT
UID
USER

ABS

ABSは、数値式の絶対値を返します。

戻り値

NUMBER

構文

ABS(n)

引数

n: 任意の数値式です。

例

ABS(-15)は、値15を返します。

ACOS

ACOSは、指定した余弦の角度をラジアン単位で計算します。

戻り値

NUMBER

構文

ACOS(n)

引数

n: 余弦を表す数値式です。範囲は-1から1です。

例

ACOS(.3)は、値1.26610367を返します。

ADD_MONTHS

ADD_MONTHSは、指定の日付から指定した月数後の日付を返します。

開始日が月末の場合、または返される日付を含む月の日数が少ない場合は、ADD_MONTHSはその月の最後の日を返します。それ以外の場合、返される日付は開始日です。

戻り値

DATE

構文

ADD_MONTHS(date, integer)

引数

date: 開始日です。

integer: 開始日に追加する月の数です。

例

ADD_MONTHS('17-JUN-06', 1)は、値17-JUL-06を返します。

ASCII

ASCIIは、式の最初の文字の10進表現を返します。

戻り値

NUMBER

構文

ASCII(char)

引数

char: 任意のテキスト式です。

例

ASCII('Boston')は、値66(文字Bに相当するASCII表現)を返します。

ASCIISTR

ASCIISTRは、任意のキャラクタ・セットの文字列を、データベース・キャラクタ・セットのASCIIに変換します。ASCII以外の文字は、\xxxxで表されます。xxxxはUTF-16コード・ユニットです。

戻り値

VARCHAR2

構文

ASCIISTR(char)

引数

char: 任意の文字列です。

例

ASCIISTR('Skåne')では、値Sk\00E5neが返されます。

ASIN

ASINは、指定した正弦の角度をラジアン単位で計算します。

戻り値

NUMBER

構文

ASIN(n)

引数

n: 正弦の10進値を含む、-1から1までの範囲の数値式です。

例

ASIN(.3)は、値0.304692654を返します。

ATAN

ATANは、指定した正接の角度をラジアン単位で計算します。

ATAN2を使用すると、所定の比率の逆正接を示す全範囲(0から2piまで)の数値を取得できます。

戻り値

NUMBER

構文

ATAN(n)

引数

n: 正接の10進値を含む数値式です。

例

ATAN(.3)は、値0.291456794を返します。

ATAN2

ATAN2は、所定の比率の逆正接を示す全範囲(0から2piまで)の数値を返します。この関数は、引数の正負に応じて-piからpiまでの値を返します。

ATANを使用すると、指定した正接(比率ではない)の角度がラジアン単位で計算されます。

戻り値

NUMBER

構文

ATAN2(n1, n2)

引数

n1およびn2は比率の構成要素を表す数値式です。

例

ATAN2(.3, .2)は、値0.982793723を返します。

BIN_TO_NUM

BIN_TO_NUMは、ビット・ベクトルを同等の数値に変換します。

戻り値

NUMBER

構文

BIN_TO_NUM(expr [, expr ]... )

引数

expr: ビット・ベクトルのビットの値に対応する、値が0または1の数値式です。

例

BIN_TO_NUM(1,0,1,0)は、値10を返します。

BITAND

BITANDは、負ではない2つの整数を表すビットに対してAND演算子の計算を行って、整数を返します。通常、この関数は、DECODE関数と一緒に使用します。

AND演算子は2つのビット値を比較します。両方の値が1の場合は1を返します。いずれかまたは両方の値が0の場合は0を返します。

戻り値

NUMBER

構文

BITAND(expr1, expr2)

引数

expr1およびexpr2は負でない整数を表す数値式です。

例

BITAND(7, 29)は、値5を返します。

7のバイナリ値は111で29のバイナリ値は11101です。これらを1ビットずつ比較することで、バイナリ値101が生成され、これは10進値の5に相当します。

CAST

CASTは、あるデータ型の値を別のデータ型に変換します。

戻り値

type_nameで指定されるデータ型です。

構文

CAST(expr AS type_name)

引数

exprは、いずれかのデータ型の式にすることができます。

type_nameは、表1-2「ディメンション・データ型」にリストされているいずれかのデータ型です。

表3-1に、どのデータ型が、どの組込みデータ型にキャストできるかを示します。NUMBERには、NUMBER、DECIMALおよびINTEGERが含まれます。DATETIMEには、DATE、TIMESTAMP、TIMESTAMP WITH TIMEZONEおよびTIMESTAMP WITH LOCAL TIMEZONEが含まれます。INTERVALには、INTERVAL DAY TO SECONDとINTERVAL YEAR TO MONTHが含まれます。

表3-1 互換データ型

変換元

BINARY_FLOAT、BINARY_DOUBLEへ

CHAR、VARCHAR2へ

NUMBERへ

DATETIME、INTERVALへ

NCHAR、NVARCHAR2へ

BINARY_FLOAT、BINARY_DOUBLE

可

可

可

不可

可

CHAR、VARCHAR2

可

可

可

可

不可

NUMBER

可

可

可

不可

可

DATETIME、INTERVAL

不可

可

不可

可

可

NCHAR、NVARCHAR2

可

不可

可

不可

可

例

CAST('123.4567' AS NUMBER(10,2))は、値123.46を返します。

CEIL

CEILは、指定した数値以上の最小の自然数を返します。

戻り値

NUMBER

構文

CEIL(n)

引数

n: 数値式です。

例

CEIL(3.1415927)は、値4を返します。

CEIL(-3.4)は、値-3.00を返します。

CHARTOROWID

CHARTOROWIDは、テキスト・データ型からROWIDデータ型に値を変換します。

ROWID疑似列の詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

戻り値

ROWID

構文

CHARTOROWID(char)

引数

char: 有効なrowidを形成するテキスト式です。

例

chartorowid('AAAN6EAALAAAAAMAAB')は、rowidとしてテキスト文字列AAAN6EAALAAAAAMAABを返します。

CHR

CHRは、整数を、データベース・キャラクタ・セットまたは各国語キャラクタ・セットにおいて等価のバイナリ値を含む文字に変換します。

シングルバイト・キャラクタ・セットでは、n > 256の場合に、CHRはmod(n, 256)と等価なバイナリに変換します。

Unicode各国語キャラクタ・セットとすべてのマルチバイト・キャラクタ・セットでは、nは1つの完全なコード・ポイントに解決される必要があります。コード・ポイントは検証されないため、無効なコード・ポイントを指定すると、結果は不定になります。

戻り値

VARCHAR2 | NVARCHAR2

構文

CHR(n [ USING NCHAR_CS ])

引数

n: 数値式です。

USING NCHAR_CSは、各国語キャラクタ・セットの文字を戻します。各国語でない場合は、データベース・キャラクタ・セットの文字を戻します。OLAPエンジンではUTF8各国語キャラクタ・セットが使用されるため、戻り値が、データベースのUTF16各国語キャラクタ・セットを使用するSQL CHR関数の場合とは異なることがあります。

例

CHR(67)、CHR(67 USING NCHAR_CS)およびCHR(323)はすべて、WE8DECデータベース・キャラクタ・セットとUTF8各国語キャラクタ・セットのあるASCIIベース・システムで文字Cを戻します。CHR(323)はCHR(MOD(323, 256))と等価です。

COALESCE

COALESCEは、式のリストから最初のNULL以外の式を返します。または、すべての式がNULLの場合はNULLを返します。

戻り値

最初の引数のデータ型

構文

COALESCE(expr [, expr ]...)

引数

expr: 任意の式です。

例

COALESCE(5, 8, 3)は、値5を返します。

COALESCE(NULL, 8, 3)は、値8を返します。

CONCAT

CONCATは、2つの式をシングル・キャラクタ文字列として結合します。戻り値のデータ型は式と同じであるか、データ型が混在している場合は可逆変換となるデータ型です。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

CONCAT(char1, char2)

引数

char1およびchar2はテキスト式です。

例

CONCAT('The current date is ', 'October 13, 2006')は、文字列The current date is October 13, 2006を返します。

COS

COSは、角度の余弦を計算します。

戻り値

NUMBER

構文

COS(n)

引数

n: 角度(ラジアン単位)を表す数値式です。

例

COS(180 * 3.1415927/180)は、180度の余弦として値-1を返します。この式では度数がラジアンに変換されます。

COSH

COSHは、双曲角度の余弦を計算します。

戻り値

NUMBER

構文

COSH(n)

引数

n: 双曲角度を表す数値式です。

例

COSH(0)は、値1を返します。

CURRENT_DATE

CURRENT_DATEは、セッション・タイムゾーンでの現在の日付を返します。

戻り値

DATE

構文

CURRENT_DATE

例

CURRENT_DATEは、12-AUG-08のような値を返します。

CURRENT_TIMESTAMP

CURRENT_TIMESTAMPは、セッション・タイムゾーンでの現在の日付と時刻を返します。タイムゾーン・オフセットで、セッションの現在のローカル時間を指定します。

戻り値

TIMESTAMP WITH TIME ZONE

構文

CURRENT_TIMESTAMP [ (precision) ]

引数

precision: 返される時刻値における秒の小数部分の精度を指定します。デフォルト値は6です。

例

CURRENT_TIMESTAMPは、08-AUG-06 11.18.31.082257 AM -08:00のような値を返します。

CURRENT_TIMESTAMP(2)は、08-AUG-06 11.18.31.08 AM -08:00のような値を返します。

DBTIMEZONE

DBTIMEZONEは、データベースのタイムゾーンの値を、協定世界時(UTC)に対するタイムゾーン・オフセットまたはタイムゾーンの地域名として返します。

他のタイムゾーン・オフセットを取得するには、TZ_OFFSETを使用します。

戻り値

VARCHAR2

構文

DBTIMEZONE

例

DBTIMEZONEは、山岳部標準時の場合はオフセット-08:00を返します。

DECODE

DECODEは、1つの式を1つ以上の検索文字列と1つずつ比較します。

exprがsearchの場合、DECODEは対応するresultを返します。一致しない場合、DECODEはdefaultを返します。defaultを省略した場合、DECODEはNULLを返します。

戻り値

最初のresult引数のデータ型

構文

DECODE(expr, search, result
[, search, result ]...
[, default ]
)

引数

exprは1つ以上の検索文字列と比較される式です。

searchはexprと一致するかどうか調べられる文字列です。

resultはexprが対応する検索文字列と一致した場合の戻り値です。

defaultはexprがどの検索文字列とも一致しない場合の戻り値です。defaultを省略すると、DECODEはNULLを返します。

引数としてすべての数値型または文字型を指定できます。2つのnullは等価です。exprがNULLの場合、DECODEは、最初のsearch(NULL)に対してresultを返します。

expr、searches、resultsおよびdefaultを含む構成要素の最大数は255です。

例

DECODE(sysdate, '21-JUN-06', 'Summer Solstice', '21-DEC-06', 'Winter Solstice', 'Have a nice day!')

次の値が返されます。

2006年6月21日にSummer Solstice

2006年12月21日にWinter Solstice

他のすべての日にHave a nice day!

EXP

EXPは、eのn乗を返します(e = 2.71828183)。このファンクションは、引数と同じ型の値を戻します。

戻り値

NUMBER

構文

EXP(n)

引数

n: 指数を表す数値式です。

例

EXP(4)は、値54.59815を返します。

EXTRACT(日時)

EXTRACTは、日時式または期間式から、指定したフィールドの値を返します。

戻り値

NUMBER

構文

EXTRACT( { { YEAR
| MONTH
| DAY
| HOUR
| MINUTE
| SECOND
}
| { TIMEZONE_HOUR
| TIMEZONE_MINUTE
}
| { TIMEZONE_REGION
| TIMEZONE_ABBR
}
}
FROM   { datetime_value_expression
| interval_value_expression
}
)

引数

datetime_value_expression: datetimeデータ型の式です。

interval_value_expression: intervalデータ型の式です。

例

EXTRACT(MONTH FROM CURRENT_TIMESTAMP)は、現在のタイムスタンプが08-AUG-06 01.10.55.330120 PM -07:00の場合に、値8を返します。

同じ条件として、EXTRACT(TIMEZONE_HOUR FROM CURRENT_TIMESTAMP)は値-7を返します。

FLOOR

FLOORは、指定した数値以下の最大の整数を返します。

戻り値

NUMBER

構文

FLOOR(n)

引数

n: 任意の数値式です。

例

FLOOR(15.7)は、値15を返します。

FLOOR(-15.7)は、値-16を返します。

FROM_TZ

FROM_TZは、タイムスタンプ値とタイムゾーンをTIMESTAMP WITH TIME ZONEデータ型に変換します。

戻り値

TIMESTAMP WITH TIME ZONE

構文

FROM_TZ (timestamp_value, time_zone_value)

引数

timestamp_value: TIMESTAMPデータ型の式です。

time_zone_value: TZH:TZMフォーマットで文字列を返すテキスト式です(TZRにオプションのTZDが付くフォーマットの場合もあります)。

例

FROM_TZ(TIMESTAMP '2008-03-26 08:00:00', '3:00')は、値26-MAR-08 08.00.00.000000 AM +03:00を返します。

GREATEST

GREATESTは、式のリストから最大の式を返します。最初の式より後の式はすべて、比較の前に最初の式のデータ型に暗黙的に変換されます。テキスト式は文字ごとに比較されます。

式のリストから最小の式を取得するには、LEASTを使用します。

戻り値

最初の式のデータ型

構文

GREATEST(expr [, expr ]...)

引数

expr: 任意の式です。

例

GREATEST('Harry','Harriot','Harold')は、値Harryを返します。

GREATEST(7, 19, 3)は、値19を返します。

HEXTORAW

HEXTORAWは、16進値をRAW値に変換します。

戻り値

RAW

構文

HEXTORAW (char)

引数

char: CHAR、VARCHAR2、NCHARまたはNVARCHAR2データ型の16進値です。

例

HEXTORAW('7D')は、RAW値7Dを返します。

INITCAP

INITCAPは、指定したテキスト式の各語の先頭を大文字、それ以外を小文字として返します。語は空白か英字以外の文字で区切ります。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

INITCAP(char)

引数

char: 任意のテキスト式です。

例

INITCAP('top ten tunes')とINITCAP('TOP TEN TUNES')はどちらも文字列Top Ten Tunesを返します。

INSTR

INSTR関数は、stringでsubstringを検索します。この関数は、string内の文字の位置を示す整数を返します。一致する部分がない場合は、0を返します。

- INSTRは、入力キャラクタ・セットで定義される文字を使用して文字列を計算します。

- INSTRBには、文字でなくバイトを使用します。

- INSTRCは、完全なUnicodeキャラクタを使用します。

REGEXP_INSTRでは追加のオプションを使用できます。

戻り値

NUMBER

構文

{ INSTR | INSTRB | INSTRC }
(string , substring [, position [, occurrence ] ])

引数

stringは検索範囲のテキスト式です。

substringは検索対象のテキスト文字列です。

positionはstring内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、INSTRは文字列の最後から逆方向に数えて検索します。デフォルト値の1では、関数が文字列の最初の文字から検索を開始します。

occurrenceは関数で検索する文字列の出現箇所を示す整数です。occurrenceの値は正数である必要があります。デフォルト値の1では、関数がsubstringの最初の出現箇所を検索します。

例

INSTR('CORPORATE FLOOR','OR', 3, 2)は、文字列CORPORATE FLOORの3番目の文字(R)から開始して、部分文字列ORの2番目の出現箇所を検索します。値14が返されますが、これはFLOORの2番目のOの位置です。

LAST_DAY

LAST_DAYは、特定の日付が含まれる月の最後の日付を返します。

戻り値

DATE

構文

LAST_DAY(date)

引数

date: 任意の日時式です。

例

LAST_DAY('26-MAR-06')は、値31-MAR-06を返します。

LEAST

LEASTは、式のリストから最小の式を返します。最初の式より後の式はすべて、比較の前に最初の式のデータ型に暗黙的に変換されます。テキスト式は文字ごとに比較されます。

式のリストから最大の式を取得するにはGREATESTを使用します。

戻り値

最初の式のデータ型

構文

LEAST(expr [, expr ]...)

引数

expr: 任意の式です。

例

LEAST('Harry','Harriot','Harold')は、値Haroldを返します。

LEAST(19, 3, 7)は、値3を返します。

LENGTH

LENGTH関数は、テキスト式の長さを返します。

- LENGTHは、文字数を数えます。

- LENGTHBは、文字のかわりにバイトを使用します。

- LENGTHCは、完全なUnicodeキャラクタを使用します。

戻り値

NUMBER

構文

{ LENGTH | LENGTHB | LENGTHC }(char)

引数

char: 任意のテキスト式です。

例

LENGTH('CANDIDE')は、値7を返します。

LN

LNは、0よりも大きな数の自然対数を返します。

戻り値

NUMBER

構文

LN(n)

引数

n: 0よりも大きな値を含む任意の数値式です。

例

LN(95)は、値4.55387689を返します。

LNNVL

LNNVLは、条件の1つまたは両方のオペランドがNULLの可能性がある場合に条件を評価します。LNNVLは、スカラー式を指定できる場所で使用できます。IS [NOT] NULL、ANDまたはOR条件が無効だが、潜在的なNULLに対応するために必要となるコンテキストでも、使用可能です。

注意: この関数は、条件が偽または不明の場合に1(true)を返し、条件が真の場合に0(false)を返します。

戻り値

NUMBER

構文

LNNVL(condition)

引数

condition: スカラー値を含む任意の式です。

例

LNNVL(1 > 4)は1(true)を返します。

LOCALTIMESTAMP

LOCALTIMESTAMPは、セッション・タイムゾーンでの現在の日付と時刻を返します。

戻り値

TIMESTAMP

構文

LOCALTIMESTAMP [ (timestamp_precision) ]

引数

timestamp_precision: 返される時刻値の秒の精度を指定します。

例

LOCALTIMESTAMPは、09-AUG-06 08.11.37.045186 AMのような値を返します。

LOCALTIMESTAMP(2)は、09-AUG-06 08.11.37.040000 AMのような値を返します。

LOG

LOGは、式の対数を計算します。

戻り値

NUMBER

構文

LOG(n2, n1)

引数

n2は対数の計算に使用する基数です。

n1は対数を計算する値です。0より大きな任意の数値式です。この値が0以下の場合、LOGはNULL値を返します。

例

LOG(10,100)は、値2を返します。

LOWER

LOWERは、テキスト表現のすべてのアルファベット文字を小文字に変換します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

LOWER(char)

引数

char: 任意のテキスト式です。

例

LOWER('STOP SHOUTING')は、文字列stop shoutingを返します。

LPAD

LPADは、指定された長さになるまで式の左に文字を追加します。戻り値のデータ型は元のテキストと同じです。

RPADを使用すると、右側に文字が追加されます。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

LPAD(expr1, n [, expr2 ])

引数

expr1: ベース文字列を表すテキスト式です。

n: 返される式の合計長です。expr1がnよりも長い場合、この関数はexpr1をn文字に切り捨てます。

expr2: 埋め込む文字のテキスト式です。デフォルトでは空白です。

例

LPAD('Page 1',15,'*.')は、値*.*.*.*.*Page 1を返します。

LPAD('Stay tuned', 4)は、値Stayを返します。

LTRIM

LTRIMは、テキスト式を左から右にスキャンして、trim式の文字と一致するすべての文字を削除します。一致しない文字が出現した時点で停止します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

LTRIM(char [, set ])

引数

char: 文字を削除するテキスト式です。

setは削除する文字を含むテキスト式です。setのデフォルト値は1つの空白です。

例

LTRIM(' . . . .Last Word', ' .')は、値Last Wordを返します。

MOD

MODは、数値を割った余りを返します。除数が0の場合は、数値を返します。

戻り値

NUMBER

構文

MOD(n2, n1)

引数

n2: 除算の対象の数値を表す数値式です。

n1: 除数を表す数値式です。

例

MOD(13,7)は、値6を返します。

MONTHS_BETWEEN

MONTHS_BETWEENは、2つの日付の間の月数を計算します。2つの日付の日を示す構成要素が同じ場合、または両方の日付が月末の場合、戻り値は自然数です。この他の場合、戻り値に小数が含まれ、1か月を31日として日数の差が表されます。

戻り値

NUMBER

構文

MONTHS_BETWEEN(date1, date2)

引数

date1およびdate2: 日時式です。date1がdate2よりも後の日付の場合、結果は正になります。date1がdate2よりも前の日付の場合、結果は負になります。

例

MONTHS_BETWEEN('15-APR-06', '01-JAN-06')は、値3.4516129を返します。

NANVL

NANVLは、値が数値かどうかを確認します。数値である場合、NANVLはその値を返します。数値でない場合は、別の値を返します。この関数は、バイナリdoubleまたはバイナリfloatのNaN値(数値ではない値)をゼロまたはNULLに変換する際に使用します。

戻り値

datatype

構文

NANVL (expression, alternate)

引数

expression: 任意の値です。

alternate: expressionが数値ではない場合に返される数値です。

NEW_TIME

NEW_TIMEは、あるタイムゾーンの日付と時刻を別のタイムゾーンの日付と時刻に変換します。この関数を使用する前に、NLS_DATE_FORMATパラメータを設定して24時間表示にしてください。

戻り値

DATE

構文

NEW_TIME(date, timezone1, timezone2)

引数

date: 新しいタイムゾーンに変換する日時式です。

timezone1: dateのタイムゾーンです。

timezone2: 新しいタイムゾーンです。

タイムゾーン引数には、表3-2の値しか使用できません。他のタイムゾーンの場合は、FROM_TZを使用します。

表3-2タイムゾーン

タイムゾーン

略称

アラスカハワイ夏時間

HDT

アラスカハワイ標準時

HST

大西洋夏時間

ADT

大西洋標準時

AST

ベーリング夏時間

BDT

ベーリング標準時

BST

中部夏時間

CDT

中部標準時

CST

東部夏時間

EDT

東部標準時

EST

グリニッジ標準時

GMT

山地夏時間

MDT

山地標準時

MST

ニューファンドランド標準時

NST

太平洋夏時間

PDT

太平洋標準時

PST

ユーコン夏時間

YDT

ユーコン標準時

YST

例

NEW_TIME(SYSDATE, 'PST', 'EST')は、SYSDATEが太平洋標準時間の18-JAN-07 01:38:07のとき、東部標準時間の18-JAN-07 04:38:07のような値を返します。この例では、NLS_DATE_FORMATはDD-MON-RR HH:MI:SSに設定されます。

NEXT_DAY

NEXT_DAYは、指定した日付以降の、特定の曜日の最初の日付を返します。

戻り値

DATE

構文

NEXT_DAY(date, char)

引数

dateは日時式です。

charはセッションの言語で曜日(月曜日など)を示すテキスト式です。

例

NEXT_DAY('11-SEP-01', 'Monday')は、値17-SEP-01を返します。

NLS_CHARSET_ID

NLS_CHARSET_IDは、指定されたキャラクタ・セット名に対応する識別番号を返します。

戻り値

NUMBER

構文

NLS_CHARSET_ID  ( charset_name )

引数

charset_name: 有効なキャラクタ・セット名であるVARCHAR2表現です。

例

NLS_CHARSET_ID('AL32UTF8')は値873を返します。

NLS_CHARSET_NAME

NLS_CHARSET_NAMEは、指定されたキャラクタ・セット番号に対応する名前を返します。

戻り値

VARCHAR2

構文

NLS_CHARSET_NAME (charset_id)

引数

charset_id: 有効なキャラクタ・セット番号、または次のキーワードのいずれかです。

- CHAR_CS: データベース・キャラクタ・セットを表します。

- NCHAR_CS: 各国語キャラクタ・セットを表します。データベースの各国語キャラクタ・セットは、UTF-8またはAL16UTF16 (デフォルト)のいずれかです。ただし、アナリティック・ワークスペースの各国語キャラクタ・セットは常にUTF-8です。

番号がキャラクタ・セットに対応しない場合は、NULLが返されます。

例

NLS_CHARSET_NAME(2000)は値AL16UTF16を返します。

NLS_INITCAP

NLS_INITCAPは、大文字で始まり、小文字が続く単語の文字列を返します。単語は空白および英数字で区切られます。

戻り値

VARCHAR2

構文

NLS_INITCAP (char [, 'nlsparam' ])

引数

char: 任意のテキスト文字列です。

nlsparamは'NLS_SORT =sort'という書式で、sortは言語ソート順またはBINARYに基づくソートです。言語ソート基準は、大文字と小文字の変換のために特別な言語要件を処理します。これらの要件により、charとは異なる長さの値が戻されることもあります。nlsparamを省略すると、この関数は使用中のセッションのデフォルトのソート順を使用します。

例

NLS_INITCAP('WALKING&THROUGH*A*winter wonderland')は値Walking#Through*A*Winter Wonderlandを返します。

NLS_INITCAP('ijsland')は値Ijslandを返しますが、NLS_INITCAP(NLS_INITCAP('ijsland', 'NLS_SORT = XDutch')はIJslandを返します。

NLS_LOWER

NLS_LOWERは、テキスト表現のすべてのアルファベット文字を小文字に変換します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

NLS_LOWER (char [, 'nlsparam' ])

引数

char: 任意のテキスト式です。

nlsparamはNLS_SORT =sort[_ai |_ci]という形式の言語ソート順序です。sortはNLS言語です。言語に接尾辞を追加して、ソートを変更できます。_aiの場合はアクセント記号を区別しないソート、_ciの場合は大文字と小文字を区別しないソートです。

例

NLS_LOWER('STOP SHOUTING')は、文字列stop shoutingを返します。

NLS_UPPER

NLS_UPPERは、テキスト表現のすべてのアルファベット文字を大文字に変換します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

NLS_UPPER (char [, 'nlsparam' ])

引数

char: 任意のテキスト式です。

nlsparamはNLS_SORT =sort[_ai |_ci]という形式の言語ソート順序です。sortはNLS言語です。言語に接尾辞を追加して、ソートを変更できます。_aiの場合はアクセント記号を区別しないソート、_ciの場合は大文字と小文字を区別しないソートです。

例

NLS_UPPER('This is an emergency')は、文字列THIS IS AN EMERGENCYを返します。

NLSSORT

NLSSORTは、テキスト文字列のソートに使用されるバイト文字列を返します。このファンクションを使用すると、文字列のバイナリ値ではなく言語ソート順に基づいてソートや比較の操作を指定できます。

注意: NLSSORTは、別の関数に渡すことのできるRAW値を返します。NLSSORTから返される値のメジャーまたは計算済メジャーを作成するには、RAWTOHEX関数を使用します。

言語ソートの詳細は、Oracle Databaseグローバリゼーション・サポート・ガイドを参照してください。

戻り値

RAW

構文

NLSSORT(char [, 'nlsparam' ])

引数

char: テキスト式です。

nlsparamはNLS_SORT =sort[_ai |_ci]という形式の言語ソート順序です。sortはNLS言語です。言語に接尾辞を追加して、ソートを変更できます。_aiの場合はアクセント記号を区別しないソート、_ciの場合は大文字と小文字を区別しないソートです。

例

NLSSORT('Rumpelstiltskin')は、デフォルトの言語ソート(この場合は米英語)のために値52756D70656C7374696C74736B696E00を返します。

NULLIF

NULLIFは、2つの式を比較します。式が等しい場合はNULLを返し、等しくない場合は最初の式を返します。

戻り値

最初の引数のデータ型

構文

NULLIF(expr1, expr2)

引数

expr1: 基準の式です。リテラルNULLは指定できません。

expr2: 基準の式と比較する式です。

例

NULLIF('red', 'Red')は、値redを返します。

NUMTODSINTERVAL

NUMTODSINTERVALは、数値をINTERVAL DAY TO SECONDデータ型に変換します。

戻り値

INTERVAL DAY TO SECOND

構文

NUMTODSINTERVAL(n, 'interval_unit')

引数

n: 任意の数値式です。

interval_unitは単位を指定するテキスト式です。次のいずれかの値に解決される必要があります。

- DAY

- HOUR

- MINUTE

- SECOND

これらの値では大文字と小文字は区別されません。

例

NUMTODSINTERVAL(100, 'MINUTE')は、値+00 01:40:00.000000を返します。

NUMTOYMINTERVAL

NUMTOYMINTERVALは、数値をINTERVAL YEAR TO MONTHデータ型に変換します。

戻り値

INTERVAL YEAR TO MONTH

構文

NUMTOYMINTERVAL(n, 'interval_unit')

引数

n: 任意の数値式です。

interval_unitは単位を指定するテキスト式です。次のいずれかの値に解決される必要があります。

- YEAR

- MONTH

これらの値では大文字と小文字は区別されません。

例

NUMTOYMINTERVAL(18, 'MONTH')は、値+01-06を返します。

NVL

NVLは、NULLを文字列で置換します。NVLは、基準の式がNULLの場合は置換文字列を返し、基準の式がNULLでない場合は基準の式の値を返します。

式がNULLの場合とそうでない場合に置換する値を変更するには、NVL2を使用します。

戻り値

最初の引数のデータ型

構文

NVL(expr1, expr2)

引数

expr1は評価される基準の式です。

expr2はexpr1がNULLの場合に返される置換文字列です。

例

NVL('First String', 'Second String')は、値First Stringを返します。

NVL(null, 'Second String')は、値Second Stringを返します。

NVL2

NVL2は、指定した式がNULLでない場合にある値を返し、指定した式がNULLの場合には別の値を返します。

NULL値を文字列で置換するにはNVLを使用します。

戻り値

最初の引数のデータ型

構文

NVL2(expr1, expr2, expr3)

引数

expr1はこの関数で値を評価する基準の式です。

expr2はexpr1がNULLでないときにこの式の値を返します。

expr3はexpr1がNULLのときにこの式の値を返します。

例

NVL2('Which string?', 'First String', 'Second String')は、値First Stringを返します。

ORA_HASH

ORA_HASHは、式のハッシュ値を生成します。分析用に複数のバケットに値セットをランダムに割り当てる場合や、ランダムな数値セットを生成する場合に使用できます。

戻り値

NUMBER

構文

ORA_HASH  (expr [, max_bucket [, seed_value ] ])

引数

expr: ハッシュ値を生成するためのデータを提供する任意の式です。

max_bucket: 最大バケット数です。たとえば、max_bucketが5に設定されている場合は、6つのバケットが作成され、ORA_HASHから0から5の値が返されます。この値は、0から4294967295または2^32-1 (デフォルト)に設定してください。

seed_value: ハッシュ値を生成するためにORA_HASHによって使用される値です。異なるseed_valueを入力すると、異なる結果を得られます。この値は、0 (デフォルト)から4294967295または2^32-1に設定してください。

例

ORA_HASH(PRODUCT_CUBE.PRICES, 5)は、ハッシュ5の列に示されているように、価格メジャーの各値に対して0から5の範囲の値を返します。ハッシュ5の列では、行のソートも行われています。

ORA_HASH(PRODUCT_CUBE.PRICES, 5, 13)でも0から5の範囲の値が返されますが、異なるシードが使用されています。

製品

価格

ハッシュ5

シード13

ENVY STD

200539.83

0

4

ENVY EXE

255029.31

0

5

1GB USB DRV

44645.65

1

2

DLX MOUSE

1379.49

2

2

144MB DISK

3011.43

2

5

512 USB DRV

22139.99

2

2

19 SVGA

34837.16

3

0

56KPS MODEM

12478

3

2

ENVY EXT KBD

4312.22

3

5

17 SVGA

22605.55

4

1

EXT CD ROM

17990.14

4

0

ENVY ABM

205462.25

5

1

POWER

POWERは、数値を累乗します。

戻り値

NUMBER

構文

POWER(n2, n1)

引数

n2は累乗する任意の数値式です。

n1: 指数です。

例

POWER(3,2)は、値9を返します。

RAWTOHEX

RAWTOHEXは、RAWデータを、その16進数表現を含む文字値に変換します。

戻り値

VARCHAR2

構文

RAWTOHEX(raw)

引数

rawは、LONG、LONG RAW、CLOB、BLOBまたはBFILE以外の任意のスカラー・データ型にすることができます。

例

RAWTOHEX(NLSSORT('Rumpelstiltskin'))は、NLSSORTから返されるRAW値を16進値52756D70656C7374696C74736B696E00に変換します。

REGEXP_COUNT

REGEXP_COUNTは、文字列内で正規表現パターンを検索し、そのパターンに一致する回数を返します。一致がない場合、この関数は0を返します。

このファンクションでは、入力キャラクタ・セットによって定義された文字を使用して文字列を評価します。

戻り値

NUMBER

構文

REGEXP_COUNT (source_char, pattern
[, position
[, match_parameter ]
]
)

引数

source_charは検索範囲のテキスト式です。

patternは検索対象の文字列です。ピリオドは任意の文字に一致します。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。

positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。

match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。

- c: 照合で大文字と小文字を区別します。

- i: 照合で大文字と小文字を区別しません。

- m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。

- n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。

- x: 空白を無視します。

例

REGEXP_COUNT('Mississippi', 'i', 1)は、文字列Mississippiの最初の文字から開始して、文字iを検索します。この関数は値4を返します。

REGEXP_INSTR

REGEXP_INSTRは、文字列内で正規表現パターンを検索します。一致する部分文字列の最初または最後の位置を示す整数を返します。一致する値が見つからない場合は0(ゼロ)を戻します。

このファンクションでは、入力キャラクタ・セットによって定義された文字を使用して文字列を評価します。

戻り値

NUMBER

構文

REGEXP_INSTR (source_char, pattern
[, position
[, occurrence
[, return_option
[, match_parameter ]
]
]
]
)

引数

source_charは検索範囲のテキスト式です。

patternは検索対象の文字列です。ピリオドは任意の文字に一致します。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。

positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。

occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。

return_optionは一致した位置を返す場合は0 (デフォルト)、一致の直後の文字の位置を返す場合は1です。

match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。

- c: 照合で大文字と小文字を区別します。

- i: 照合で大文字と小文字を区別しません。

- m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。

- n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。

- x: 空白を無視します。

例

REGEXP_INSTR('Mississippi', 'i', 1, 3)は、文字列Mississippiの最初の文字から開始して、その中の3番目の文字iを検索します。この関数は値8を返します。

REGEXP_REPLACE

REGEXP_REPLACEは、文字列内で正規表現パターンを検索して、別の文字列で置換します。デフォルトでは、この関数は、正規表現パターンのすべての出現箇所をreplace_stringで置換してsource_charを返します。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

REGEXP_REPLACE(source_char, pattern
[, replace_string
[, position
[, occurrence
[, match_parameter ]
]
]
]
)

引数

source_charは検索範囲のテキスト式です。

patternは検索対象のテキスト式です。通常は、テキスト・リテラルであり、最大512バイトを含むことができます。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。

replace_stringはsource_charのpatternを置換するテキストです。

positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。

occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。

match_parameterはテキスト・リテラルで、ファンクションが持つデフォルトの照合動作を変更できます。次の1つ以上の値を指定できます。

- c: 照合で大文字と小文字を区別します。

- i: 照合で大文字と小文字を区別しません。

- m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。

- n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。

- x: 空白を無視します。

例

REGEXP_REPLACE('500 Oracle Parkway, Redwood Shores, CA', '( ){2,}', ' ')

余分な空白は削除されて文字列が返されます

500 Oracle Parkway, Redwood Shores, CA

REGEXP_SUBSTR

REGEXP_SUBSTRは、文字列内でパターンを検索し、一致する文字列を返します。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR

構文

REGEXP_SUBSTR(source_char, pattern
[, position
[, occurrence
[, match_parameter ]
]
]
)

引数

source_charは検索範囲のテキスト式です。

patternは検索対象のテキスト式です。通常は、テキスト・リテラルであり、最大512バイトを含むことができます。演算子のリストは、『Oracle Database SQL言語リファレンス』の付録DのOracle正規表現のサポートを参照してください。

positionはsource_char内で関数が検索を開始する文字を示す0以外の整数です。positionが負の場合、関数は文字列の最後から逆方向に数えて検索します。positionのデフォルト値の1では、関数がsource_charの最初の文字から検索を開始します。

occurrenceは関数で検索するpatternの出現箇所を示す整数です。occurrenceの値は正であることが必要です。occurrenceのデフォルト値1では、関数がpatternの最初の出現箇所を検索します。

match_parameterは関数のデフォルト照合動作を変更できるテキスト式です。次の1つ以上の値を指定できます。

- c: 照合で大文字と小文字を区別します。

- i: 照合で大文字と小文字を区別しません。

- m: ソース文字列を複数行とみなします。関数は、^および$をソース文字列全体の最初または最後としてだけではなく、ソース文字列における任意の行の、それぞれ最初および最後として解釈します。デフォルトでは、ソース文字列を単一行として処理します。

- n: ピリオド(ワイルドカード文字)が一致する文字に改行文字を含めます。デフォルトでは含まれません。

- x: 空白を無視します。

例

REGEXP_SUBSTR('7 W 96th St, New York, NEW YORK', 'new york', 10, 2, 'i')は、10番目の文字から検索を開始し、大文字と小文字を区別せずにNEW YORKを照合します。

REGEXP_SUBSTR('parsley, sage, rosemary, thyme', 's[^,]+e', 1, 2)は、最初の文字から検索を開始し、文字s、カンマ以外の任意の数の文字および文字eから構成される2番目の部分文字列を照合します。この例では、関数は値sageを返します。

REMAINDER

REMAINDERは、ある数を別の数で割った剰余を、次の式を使用して丸めて返します。

n2 - (n1 * N)

このとき、Nはn2/n1に最も近い整数です。

戻り値

NUMBER

構文

REMAINDER(n2, n1)

引数

n1: 除数を表す数値式です。

n2: 被除数を表す数値式です。

例

REMAINDER(18,7)は、値-3を返します。

REPLACE

REPLACEは、文字列内で正規表現パターンを検索し、パターンを別の文字列で置換し、変更された文字列を返します。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

REPLACE(char, search_string [, replacement_string ])

引数

charは検索範囲のテキスト式です。

search_string: 検索対象のテキスト式です。

replacement_stringはcharのsearch_stringを置換するテキスト式です。

例

REPLACE('Nick Nack', 'N', 'Cl')は、文字列Click Clackを返します。

ROUND (日付)

ROUNDは、日付フォーマットで指定した単位で四捨五入した日付を返します。

戻り値

DATE

構文

ROUND(date [, fmt ])

引数

date: 日付と時刻を示す式です。

fmtは日付フォーマットのテキスト・リテラルです。『Oracle Database SQL言語リファレンス』を参照してください。

例

ROUND(SYSDATE, 'YEAR')は、2006年後半のすべての日付に対して値01-JAN-07を返します。

ROUND(TO_DATE('13-OCT-06'), 'MONTH')は、値01-OCT-06を返します。

ROUND (数値)

ROUNDは、指定の小数点以下の桁数で四捨五入した数値を返します。

戻り値

NUMBER

構文

ROUND(n [, integer ])

引数

n: 四捨五入する数値です。

integer: 四捨五入した数値の小数点以下の桁数です。負の値を指定すると、小数点の左側の桁が四捨五入されます。デフォルト値は0です。

例

ROUND(15.193)は、値15を返します。

ROUND(15.193,1)は、値15.2を返します。

ROUND(15.193,-1)は、値20を返します。

ROWIDTOCHAR

ROWIDTOCHARは、行アドレスをROWIDデータ型からテキストに変換します。戻り値は、常にデータベース・キャラクタ・セットの18文字です。

戻り値

VARCHAR2

構文

ROWIDTOCHAR(rowid)

引数

rowidは変換する行アドレスです。

ROWIDTONCHAR

ROWIDTONCHARは、行アドレスをROWIDデータ型からテキストに変換します。戻り値は、常に各国語キャラクタ・セットの18文字です。

戻り値

NVARCHAR2

構文

ROWIDTONCHAR(rowid)

引数

rowidは変換する行アドレスです。

RPAD

RPADは、指定した長さになるまで式の右に文字を追加します。戻り値のデータ型は元のテキストと同じです。

LPADを使用すると、左側に文字が追加されます。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

RPAD(expr1 , n [, expr2 ])

引数

expr1: ベース文字列を表すテキスト式です。

n: 返される式の合計長です。expr1がnよりも長い場合、この関数はexpr1をn文字に切り捨てます。

expr2: 埋め込む文字のテキスト式です。デフォルトでは空白です。

例

RPAD('Stay tuned', 15, '. ')は、値Stay tuned. . .を返します。

RPAD('Stay tuned', 4)は、値Stayを返します。

RTRIM

RTRIMは、テキスト式を右から左にスキャンして、trim式の文字と一致するすべての文字を削除します。一致しない文字が出現した時点で停止します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

RTRIM(char [, set ])

引数

char: 文字を削除するテキスト式です。

setは削除する文字を含むテキスト式です。setのデフォルト値は1つの空白です。

例

RTRIM('You did that!?!?!?!', '?!')は、値You did thatを返します。

RTRIM('3.14848', '84')は、テキスト値3.1を返します。

SESSIONTIMEZONE

SESSIONTIMEZONEは、現行セッションのタイムゾーンを返します。戻り値の型は、協定世界時(UTC)に対するタイムゾーン・オフセットまたはタイムゾーンの地域名です。

戻り値

VARCHAR2

構文

SESSIONTIMEZONE

例

SESSIONTIMEZONEは、東部標準時の場合は-05:00を返します。

SIGN

SIGNは、指定した数値が、負、0または正のいずれかを示す値を返します。

- n < 0の場合は-1

- n = 0の場合は0

- n > 0の場合は1

戻り値

NUMBER

構文

SIGN(n)

引数

n: 数値式です。

例

SIGN(-15)は、値-1を返します。

SIN

SINは、角度の正弦を返します。

戻り値

NUMBER

構文

SIN(n)

引数

n: 角度(ラジアン単位)を表す数値式です。

例

SIN(30 * 3.1415927/180)は、角度30度の正弦を値0.500000007と計算します。この数値式では度数がラジアンに変換されます。

SINH

SINHは、双曲角度の正弦を返します。

戻り値

NUMBER

構文

SINH(n)

引数

n: 双曲角度を表す数値式です。

例

SINH(1)は、値1.17520119を返します。

SOUNDEX

SOUNDEXは、テキスト式の音声表現を含む文字列を返します。この関数では、異なるスペルで発音が似ている語句を比較できます。

この関数は、Donald KnuthのThe Art of Computer Programmingに記述されているアルゴリズムに基づいています。このアルゴリズムは英語用に設計されています。英語以外の言語での結果は予測できず、不十分な場合が多いです。

戻り値

VARCHAR2

構文

SOUNDEX (char)

引数

char: 任意のテキスト式です。

例

このすべての例で値D500が返されます。

soundex('Donna')

soundex('Diane')

soundex('Dana')

SQRT

SQRTは、数値の平方根を返します。

戻り値

NUMBER

構文

SQRT(n)

引数

n: 正の数を表す数値式です。

例

SQRT(13)は、値3.60555128を返します。

SUBSTR

SUBSTRは、文字列の、指定した文字位置から指定した文字数までの部分を返します。

- SUBSTRは、入力キャラクタ・セットによって定義された文字を使用して、長さを計算します。

- SUBSTRBには、文字でなくバイトを使用します。

- SUBSTRCは、完全なUnicodeキャラクタを使用します。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

{ SUBSTR | SUBSTRB | SUBSTRC }(char, position [, substring_length ])

引数

char: 部分文字列を導出するベース文字列を表すテキスト式です。

position: 次のように部分文字列の最初の文字を指定します。

- positionが正の場合、関数はcharの先頭から数えて、最初の文字を決定します。

- positionが負の場合、関数はcharの最後から逆方向に数えます。

- positionが0の場合、最初の文字が部分文字列の先頭になります。

substring_length: 返される文字列の文字数です。デフォルトでは、関数はベース文字列の最後までのすべての文字を返します。1未満の値を指定すると、関数はNULLを返します。

例

substr('firefly', 1, 4)は、部分文字列fireを返します。

substr('firefly', -3, 3)は、部分文字列flyを返します。

SYS_CONTEXT

SYS_CONTEXTは、名前付きコンテキストの属性の値を返します。コンテキスト、属性および値は、データベースですでに定義されている必要があります。コンテキストが定義されていない場合、SYS_CONTEXTはNULLを返します。

戻り値

VARCHAR2

構文

SYS_CONTEXT ('namespace', 'parameter')

引数

namespaceは、データベース内の任意の名前付きコンテキストにすることができます。USERENVは、現在のセッションを説明する組込みコンテキストです。

parameterは namespaceの定義済属性です。表3-3で、値を持つ可能性が最も高いUSERENVの事前定義済属性について説明します。完全なリストについては、『Oracle Database SQL言語リファレンス』のSYS_CONTEXTに関する項を参照してください。

表3-3 USERENV属性

USERENV属性

説明

AUTHENTICATED_IDENTITY

データベース・ユーザー名、スキーマ名、オペレーティング・システム・ログイン名など、認証に使用される識別情報。

AUTHENTICATION_METHOD

PASSWORD、OS、SSLなどの認証方法。

CURRENT_EDITION_ID

100などのセッション・エディション識別子。

CURRENT_EDITION_NAME

ORA$BASEなどのセッション・エディション名。

CURRENT_SCHEMA

SHなど、現在アクティブなデフォルト・スキーマの名前。

CURRENT_SCHEMA_ID

80など、現在アクティブなデフォルト・スキーマの数値識別子。

CURRENT_USER

SHなど、権限が現在アクティブになっているデータベース・ユーザーの名前。

CURRENT_USERID

80など、権限が現在アクティブになっているデータベース・ユーザーの数値識別子。

DATABASE_ROLE

データベースのData Guardロール(PRIMARY、PHYSICAL STANDBY、LOGICAL STANDBYまたはSNAPSHOT STANDBY)。

DB_DOMAIN

us.example.comなど、DB_DOMAIN初期化パラメータで指定されたデータベースのネットワーク・ドメイン。

DB_NAME

DB_NAME初期化パラメータで指定されたデータベースの名前。

DB_UNIQUE_NAME

DB_UNIQUE_NAME初期化パラメータで指定された、ドメイン内のデータベースの一意名。

ENTERPRISE_IDENTITY

ユーザーの企業全体での識別子(ローカル・ユーザーの場合はNULL)、SYSDBAおよびSYSOPER。

FG_JOB_ID

現在のセッションがクライアントのフォアグラウンド・プロセスで開かれた場合は、そのセッションのジョブ識別子。それ以外の場合はNULL。

GLOBAL_CONTEXT_MEMORY

グローバルにアクセスされるコンテキストによってシステム・グローバル領域で使用される数値。

GLOBAL_UID

Oracle Internet Directory for Enterprise User Securityログインのグローバル・ユーザーID、またはNULL。

HOST

クライアント・ホスト・コンピュータの名前。

IDENTIFICATION_TYPE

データベースでユーザー・スキーマが作成された方法(LOCAL、EXTERNAL、GLOBAL SHAREDまたはGLOBAL PRIVATE)。

INSTANCE

1など、現在のインスタンスの識別番号。

INSTANCE_NAME

データベース・インスタンスの名前。

IP_ADDRESS

10.255.255.255など、クライアントのIPアドレス。

ISDBA

ユーザーがDBA権限で認証された場合はTRUE、それ以外の場合はFALSE。

LANG

AMERICANを表すUSなど、セッション言語の短縮名。

LANGUAGE

AMERICA_AMERICAN.WE8DECなど、language_territory.charactersetの形式の言語、地域およびデータベース・キャラクタ・セット。

MODULE

JDBC Thin ClientやSQL Developerなど、DBMS_APPLICATION_INFOパッケージまたはOCIを通じて設定されたアプリケーション名。

NETWORK_PROTOCOL

TCPなど、通信に使用されるネットワーク・プロトコル。

NLS_CALENDAR

GREGORIANなどのセッション・カレンダ。

NLS_CURRENCY

$などのセッション通貨マーク。

NLS_DATE_FORMAT

DD-MON-RRなどのセッション日付形式。

NLS_DATE_LANGUAGE

AMERICANなどのセッション日付言語。

NLS_SORT

BINARY、またはXSPANISHなどの言語ソート基準。

NLS_TERRITORY

AMERICAなどのセッション地域。

OS_USER

データベース・セッションを開始したクライアント・プロセスのオペレーティングシステム・ユーザー名。

SERVER_HOST

データベース・インスタンスが実行しているコンピュータのホスト名。

SERVICE_NAME

SYS$USERSなど、セッションが接続しているサービスの名前。

SESSION_USER

SHなど、ログイン時にユーザーの識別に使用したデータベース・ユーザー名またはスキーマ名。

SESSIONID

120456などのセッション識別子。

SID

86などのセッション番号。

例

SYS_CONTEXT('USERENV','NLS_DATE_FORMAT')は、DD-MON-RRのような値を返します。

SYSDATE

SYSDATEは、データベースがあるオペレーティング・システムの現在の日付と時刻を返します。値のフォーマットは、NLS_DATE_FORMAT初期化パラメータによって異なります。

戻り値

DATE

構文

SYSDATE

例

SYSDATEは、NLS_DATE_FORMATがDD-MON-RRに設定された13-AUG-06のような値を返します。

TO_CHAR(SYSDATE, 'MM-DD-YYYY HH24:MI:SS')は、08-13-2006 17:20:47のような値を返します。TO_CHARのコールで指定する日付フォーマットによって、日付と時刻の両方が表示されます。

SYSTIMESTAMP

SYSTIMESTAMPは、データベースが存在するシステムの、秒の小数部とタイムゾーンを含む日付を戻します。

戻り値

TIMESTAMP WITH TIME ZONE

構文

SYSTIMESTAMP

例

SYSTIMESTAMPは、次のような値を返します。

13-AUG-06 05.28.10.385799 PM -08:00

TAN

TANは、角度の正接を返します。

戻り値

NUMBER

構文

TAN(n)

引数

n: 角度(ラジアン単位)を表す数値式です。

例

TAN(135 * 3.1415927/180)は、角度135度の正接を値-0.99999993と計算します。この式では度数がラジアンに変換されます。

TANH

TANHは、双曲角度の正接を返します。

戻り値

NUMBER

構文

TANH(n)

引数

n: 双曲角度を表す数値式です。

例

TANH(.5)は、値0.462117157を返します。

TO_BINARY_DOUBLE

TO_BINARY_DOUBLEは、テキストまたは数値式を倍精度浮動小数点数に変換します。

戻り値

BINARY_DOUBLE

構文

TO_BINARY_DOUBLE (expr [, fmt [, 'nlsparam' ] ])

引数

n: 任意のテキストまたは数値式です。

fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。

nlsparam: 次の数値フォーマット要素で使用される文字を指定します。

- 小数点文字

- グループ・セパレータ

- 各国通貨記号

- 国際通貨記号

この引数のフォーマットを次に示します。

'NLS_NUMERIC_CHARACTERS = ''dg''
NLS_CURRENCY = ''text''
NLS_ISO_CURRENCY = territory '

dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。

この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。

例

このすべての例で値1.235E+003が返されます。

TO_BINARY_DOUBLE(1234.56)

TO_BINARY_DOUBLE('$1,234.56', '$9,999.99')

TO_BINARY_DOUBLE('1.234,56', '9G999D99', 'NLS_NUMERIC_CHARACTERS='',.''')

TO_BINARY_FLOAT

TO_BINARY_FLOATは、テキストまたは数値式を単精度浮動小数点数に変換します。

戻り値

BINARY_FLOAT

構文

TO_BINARY_FLOAT (expr [, fmt [, 'nlsparam' ] ])

引数

n: 任意のテキストまたは数値式です。

fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。

nlsparam: 次の数値フォーマット要素で使用される文字を指定します。

- 小数点文字

- グループ・セパレータ

- 各国通貨記号

- 国際通貨記号

この引数のフォーマットを次に示します。

'NLS_NUMERIC_CHARACTERS = ''dg''
NLS_CURRENCY = ''text''
NLS_ISO_CURRENCY = territory '

dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。

この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。

例

このすべての例で値1.235E+003が返されます。

TO_BINARY_FLOAT(1234.56)

TO_BINARY_FLOAT('$1,234.56', '$9,999.99')

TO_BINARY_FLOAT('1.234,56', '9G999D99', 'NLS_NUMERIC_CHARACTERS='',.''')

TO_CHAR (文字)

TO_CHAR (文字)は、テキスト式をデータベース・キャラクタ・セットに変換します。

戻り値

VARCHAR2

構文

TO_CHAR(exp)

引数

char: テキスト式です。データベース・キャラクタ・セットで表せない文字を含む場合、変換結果ではデータが失われます。

例

TO_CHAR('¡Una qué sorpresa!')は、値?Una qu? sorpresa!を返します。2つの文字(¡とé)は、データベース文字セットにないため変換で失われます。

TO_CHAR('David Ortiz')は、データベース・キャラクタ・セットの値David Ortizを返します。すべての文字がデータベース・キャラクタ・セットにあるため、この変換では文字が失われません。

TO_CHAR (日時)

TO_CHAR (日時)は、日時式または期間式を、指定したフォーマットのテキスト文字列に変換します。

戻り値

VARCHAR2

構文

TO_CHAR({ datetime | interval } [, fmt [, 'nlsparam' ] ])

引数

datetime: テキストに変換する日時式です。

interval: テキストに変換する期間式です。

fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

nlsparam: 月と日の名前や略称を返すときに使用する言語を指定します。この引数は次のような形式で指定できます。

'NLS_DATE_LANGUAGE = language'

デフォルトでは、戻り値はセッションの日付言語になります。

例

TO_CHAR(SYSDATE)は、11-APR-08のような値を返します。

TO_CHAR(SYSDATE, 'Day: MONTH DD, YYYY')は、Friday : APRIL 11, 2008のような値を返します。

TO_CHAR(SYSDATE, 'Day: MONTH DD, YYYY', 'NLS_DATE_LANGUAGE = Spanish')は、Viernes : ABRIL 11, 2008のような値を返します。

TO_CHAR (数値)

TO_CHAR (数値)は、数値式をデータベース・キャラクタ・セットのテキスト値に変換します。

戻り値

VARCHAR2

構文

TO_CHAR(n [, fmt [, 'nlsparam' ] ])

引数

n: 変換する数値式です。

fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。

nlsparam: 返される文字のフォーマットを指定します。次の数値フォーマット要素を使用します。

- 小数点文字

- グループ・セパレータ

- 各国通貨記号

- 国際通貨記号

この引数のフォーマットを次に示します。

'NLS_NUMERIC_CHARACTERS = ''dg''
NLS_CURRENCY = ''text''
NLS_ISO_CURRENCY = territory '

文字dは小数点文字、gは、グループ・セパレータを表します。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。

この引数またはNLSパラメータのいずれかを省略すると、この関数はセッションのデフォルト値を使用します。

例

TO_CHAR(1234567, 'C9G999G999D99')は、USD1,234,567.00のようなテキスト文字列を返します。

TO_CHAR(1234567, 'C9G999G999D99', 'NLS_ISO_CURRENCY = SPAIN')は、テキスト文字列EUR1,234,567.00を返します。

TO_DATE

TO_DATEは、テキスト式をDATEデータ型に変換します。

戻り値

DATE

構文

TO_DATE(char [, fmt [, 'nlsparam' ] ])

引数

char: 日付を表すテキスト式です。

fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

nlsparam: charの言語を指定します。この引数は次のような形式で指定できます。

'NLS_DATE_LANGUAGE = language'

デフォルトでは、charはセッション日付言語になります。

例

TO_DATE('October 13, 2008', 'MONTH DD, YYYY')は、値13-OCT-08を返します。

TO_DATE('13 Octubre 2008', 'dd month yyyy', 'NLS_DATE_LANGUAGE=SPANISH')も値13-OCT-08を返します。

TO_DSINTERVAL

TO_DSINTERVALは、テキスト式をINTERVAL DAY TO SECONDデータ型に変換します。

戻り値

INTERVAL DAY TO SECOND

構文

TO_DSINTERVAL(char)

引数

char: 変換するテキスト式です。

例

TO_DSINTERVAL('360 12:45:49')は、値+360 12:45:49.000000を返します。

TO_NCHAR (文字)

TO_NCHAR (文字)は、文字列を各国語キャラクタ・セットに変換します。

戻り値

NVARCHAR2

構文

TO_NCHAR(exp)

引数

exp: テキスト式です。各国語キャラクタ・セットで表せない文字を含む場合、変換結果ではデータが失われます。

例

TO_NCHAR( 'David Ortiz')は、各国語キャラクタ・セットでDavid Ortizの値を返します。

TO_NCHAR (日時)

TO_NCHAR (日時)は、日時または間隔の値を各国語キャラクタ・セットに変換します。

戻り値

NVARCHAR2

構文

TO_NCHAR({ datetime | interval }
[, fmt [, 'nlsparam' ] ]
)

引数

datetime: テキストに変換する日時式です。

interval: テキストに変換する期間式です。

fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

nlsparam: 月と日の名前や略称を返すときに使用する言語を指定します。この引数は次のような形式で指定できます。

'NLS_DATE_LANGUAGE = language'

デフォルトでは、戻り値はセッションの日付言語になります。

例

TO_NCHAR(SYSDATE)は、11-APR-08のような値を返します。

TO_NCHAR(SYSDATE, 'Day: MONTH DD, YYYY')は、Friday : APRIL 11, 2008のような値を返します。

TO_NCHAR(SYSDATE, 'Day: MONTH DD, YYYY', 'NLS_DATE_LANGUAGE = Spanish')は、Viernes : ABRIL 11, 2008のような値を返します。

TO_NCHAR (数値)

TO_NCHAR (数値)は、数値を各国語キャラクタ・セットに変換します。

戻り値

NVARCHAR2

構文

TO_CHAR(n [, fmt [, 'nlsparam' ] ])

引数

n: 変換する数値式です。

fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。

nlsparam: 返される文字のフォーマットを指定するテキスト式です。次の数値フォーマット要素を使用します。

- 小数点文字

- グループ・セパレータ

- 各国通貨記号

- 国際通貨記号

この引数のフォーマットを次に示します。

'NLS_NUMERIC_CHARACTERS = ''dg''
NLS_CURRENCY = ''text''
NLS_ISO_CURRENCY = territory '

文字dは小数点文字、gは、グループ・セパレータを表します。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。

この引数またはNLSパラメータのいずれかを省略すると、この関数はセッションのデフォルト値を使用します。

例

TO_NCHAR(1234567, 'C9G999G999D99')は、USD1,234,567.00のようなテキスト文字列を返します。

TO_NCHAR(1234567, 'C9G999G999D99', 'NLS_ISO_CURRENCY = SPAIN')は、テキスト文字列EUR1,234,567.00を返します。

TO_NUMBER

TO_NUMBERは、数字を含むテキスト式をNUMBERデータ型の値に変換します。

戻り値

NUMBER

構文

TO_NUMBER(expr [, fmt [, 'nlsparam' ] ])

引数

expr: 数値に変換する式です。

fmtは数値フォーマット・モデルを指定するテキスト式です。Oracle Database SQLリファレンスを参照してください。

nlsparam: 次の数値フォーマット要素で使用される文字を指定します。

- 小数点文字

- グループ・セパレータ

- 各国通貨記号

- 国際通貨記号

この引数のフォーマットを次に示します。

'NLS_NUMERIC_CHARACTERS = ''dg''
NLS_CURRENCY = ''text''
NLS_ISO_CURRENCY = territory '

dは小数点文字、gはグループ・セパレータです。これらは、異なるシングルバイト文字である必要があります。引用した文字列内では、2つの一重引用符でパラメータ値を囲んでください。通貨記号には10文字使用できます。

この引数またはNLSパラメータのいずれかを省略すると、この関数はexprを解釈するためにセッションのデフォルト値を使用します。

例

TO_NUMBER('$1,234,567.89', 'L999G999G999D99')は、値1234567.89を返します。

TO_NUMBER('EUR1,234,567.89', 'C999G999G999D99', 'NLS_ISO_CURRENCY=SPAIN')も、値1234567.89を返します。

TO_TIMESTAMP

TO_TIMESTAMPは、テキスト式をTIMESTAMPの値に変換します。

戻り値

TIMESTAMP

構文

TO_TIMESTAMP(char [, fmt [ 'nlsparam' ] ])

引数

char: 変換するテキスト式です。

fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

nlsparam: 月と日の名前やcharで与えられた略称に使用される言語を指定します。引数の形式は次のとおりです。

'NLS_DATE_LANGUAGE = language'

デフォルトでは、charはセッション日付言語になります。

例

TO_TIMESTAMP('10-SEP-0614:10:10.123000','DD-MON-RRHH24:MI:SS.FF')は、値10-SEP-06 02.10.10.123000 PMを返します。

TO_TIMESTAMP('10-AGOSTO-0714:10:10', 'DD-MON-RRHH24:MI:SS.FF', 'NLS_DATE_LANGUAGE=SPANISH')は、値10-AUG-07 02.10.10.000000 PMを返します。

TO_TIMESTAMP_TZ

TO_TIMESTAMP_TZは、テキスト式をTIMESTAMP WITH TIME ZONEデータ型の値に変換します。

戻り値

TIMESTAMP WITH TIME ZONE

構文

TO_TIMESTAMP_TZ(char [, fmt [ 'nlsparam' ] ])

引数

char: 変換するテキスト式です。

fmtはcharのフォーマットを指定するdatetimeモデル・フォーマットです。デフォルトの日付フォーマットは、NLS_TERRITORY初期化パラメータによって暗黙的に決まります。NLS_DATE_FORMATパラメータを使用して明示的に設定することもできます。データ型フォーマットの詳細は、『Oracle Database SQL言語リファレンス』を参照してください。

nlsparam: 月と日の名前やcharで与えられた略称に使用される言語を指定します。引数の形式は次のとおりです。

'NLS_DATE_LANGUAGE = language'

デフォルトでは、charはセッション日付言語になります。

例

TO_TIMESTAMP_TZ('2006-03-26 7:33:00 -4:00', 'YYYY-MM-DD HH:MI:SS TZH:TZM')は、値26-MAR-06 07.33.00.000000 AM -04:00を返します。

TO_TIMESTAMP_TZ('2006-AGOSTO-13 7:33:00 -4:00', 'YYYY-MONTH-DD HH:MI:SS TZH:TZM', 'NLS_DATE_LANGUAGE=SPANISH')は、値13-AUG-06 07.33.00.000000 AM -04:00を返します。

TO_YMINTERVAL

TO_YMINTERVALは、テキスト式をINTERVAL YEAR TO MONTHデータ型に変換します。関数は、次の2つの形式のいずれかの引数を受け入れます。

- SQL規格(ISO/IEC 9075:2003)に準拠したSQL期間書式(ISO/IEC 9075:2003)

- ISO 8601:2004規格に準拠したISO存続期間書式

戻り値

INTERVAL YEAR TO MONTH

構文

TO_YMINTERVAL  ( ' { sql_format | ym_iso_format } ' )

sql_format::=
[+|-] years - months

ym_iso_format::=
[-] P  [ years Y  ] [months M ] [days D ] [ T  [hours H ] [minutes M ] [seconds [. frac_secs] S  ] ]

引数

SQL形式:

yearsは0から999999999までの整数です。

monthsは0から11までの整数です。

これ以外に、書式要素の間に空白を使用できます。

ISO形式:

yearsとmonthsは、0から999999999までの整数です。

days、hours、minutes、secondsおよびfrac_secsは負以外の整数であり、無視されます。

値には空白を使用できません。

例

TO_YMINTERVAL('1-6')およびTO_YMINTERVAL('P1Y6M')は、1年と6か月を意味する値+01-06を返します。

SYSDATE + TO_YMINTERVAL('1-6')は、現在の日付に1年6か月を加算します。SYSDATEが15-APR-08の場合、値は15-OCT-09です。

SYSDATE + TO_YMINTERVAL('P1Y6M')は、ISO形式を使用して現在の日付に1年6か月を加算します。SYSDATEが15-APR-08の場合、値は15-OCT-09です。

SYSDATE + TO_YMINTERVAL('-1-2')は、現在の日付から1年2か月を減算します。SYSDATEが15-APR-08の場合、値は15-FEB-07です。

TRANSLATE

TRANSLATEは、1回の操作で複数の文字を1対1で置き換えることができます。この式は、最初の文字列の各文字のすべての出現箇所を、2番目の文字列の対応する文字で置換した式を返します。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

TRANSLATE(expr, from_string, to_string)

引数

expr: 変更するテキスト式です。

from_string: expr内で置換する1つ以上の文字を指定します。

to_stringにはfrom_stringの対応する文字を置換する1つ以上の文字を指定します。この文字列はfrom_stringよりも少ない文字数で指定できますが、その場合、対応のない文字はNULLで置換されます。ただし、to_stringを空にすることはできません。

例

TRANSLATE('disk', 'dk', 'Dc')は、値Discを返します。

TRANSLATE (USING)

TRANSLATEは、データベース・キャラクタ・セットと各国語キャラクタ・セット間でテキスト文字列を変換します。

注意: TRANSLATE USING関数は、主にANSIとの互換性を保つためにサポートされています。データをデータベースまたは各国語キャラクタ・セットに変換するには、TO_CHARおよびTO_NCHAR関数を使用することをお薦めします。TO_CHARおよびTO_NCHARは、文字データのみ受け入れるTRANSLATE USINGよりも多様なデータ型を引数として受け取ることができます。

戻り値

VARCHAR2 | NVARCHAR2

構文

TRANSLATE (char USING { CHAR_CS | NCHAR_CS } )

引数

char: データベース・キャラクタ・セット(USING CHAR_CS)または各国語キャラクタ・セット(USING NCHAR_CS)に変換するテキスト式です。

例

TRANSLATE('north by northwest' USING NCHAR_CS)は、各国語キャラクタ・セットの値north by northwestを返します。

TRIM

TRIMは、文字列の先頭または末尾(あるいは両方)から文字を削除します。

戻り値

VARCHAR2

構文

TRIM([ { { LEADING | TRAILING | BOTH }[ trim_character ]
| trim_character
}
FROM
]
trim_source
)

引数

LEADING: 文字列の先頭から一致する文字を削除します。

TRAILING: 文字列の末尾から一致する文字を削除します。

BOTH: 文字列の先頭と末尾から一致する文字を削除します。(デフォルト)

trim_character: 削除する1文字です。デフォルトでは空白です。

trim_source: 文字を削除するテキスト式です。

例

TRIM('0' FROM '00026501.6703000')は、値26501.6703を返します。

TRIM(LEADING '!' FROM '!!Help! Help!!')は値Help! Help!!を返します。

TRUNC (数値)

TRUNCは、数値式の小数点以下を指定した桁数に切り捨てます。

戻り値

NUMBER

構文

TRUNC(n1 [, n2 ])

引数

n1: 切捨てを行う数値式です。

n2: 小数点以下の桁数です。正の数を指定すると、小数点の右側の桁が切り捨てられ、負の数を指定すると小数点の左側の桁が切り捨てられます。デフォルトは0です。

例

TRUNC(15.79)は、値15を返します。

TRUNC(15.79, 1)は、値15.7を返します。

TRUNC(15.79, -1)は、値10を返します。

TZ_OFFSET

TZ_OFFSETは、標準世界時(UTC)に対するタイムゾーン・オフセットを返します。

戻り値

VARCHAR2

構文

TZ_OFFSET({ 'time_zone_name' | '{ + | - } hh:mi'
| SESSIONTIMEZONE | DBTMEZONE
}
)

引数

time_zone_name: タイムゾーンの名前です。

hh:mm: 時刻と分です。この引数に対しては、自身の値が返されます。

SESSIONTIMEZONE: セッション・タイムゾーンを返します。

DBTIMEZONE: データベース・タイムゾーンを返します。

例

TZ_OFFSET('US/Eastern')は、夏時間の場合はオフセット-04:00を返します。

TZ_OFFSET('EST')は、オフセット-05:00を返します。

TZ_OFFSET(DBTIMEZONE)は、山岳部標準時の場合はオフセット-07:00を返します。

UID

UIDは、セッション・ユーザー(ログオンしているユーザー)の一意識別子(UID)を返します。

戻り値

INTEGER

構文

UID

例

UIDは、76のような値を返します。

UNISTR

UNISTRは、テキスト文字列を各国語キャラクタ・セットに変換します。

戻り値

NVARCHAR2

構文

UNISTR ( string )

引数

string: 任意のテキスト式を指定できます。移植性を高めるために、ASCII文字とUnicodeエンコード値のみをテキスト・リテラルとして使用することをお薦めします。Unicodeエンコード値の形式は\xxxxで、xxxxは文字の16進値です。補足文字は2つのコード・ユニットとしてエンコードされ、最初のコード・ユニットは上位サロゲート範囲(U+D800からU+DBFF)から、2番目のコード・ユニットは下位サロゲート範囲(U+DC00からU+DFFF)から取得されます。文字列にリテラルのバックスラッシュを含めるには、前にもう1つのバックスラッシュを付けます(\\)。

例

UNISTR('abc\00e5\00f1\00f6')は、値abcåñöを返します。

UPPER

UPPERは、テキスト表現のすべてのアルファベット文字を大文字に変換します。戻り値のデータ型は元のテキストと同じです。

戻り値

CHAR | NCHAR | VARCHAR2 | NVARCHAR2

構文

UPPER(char)

引数

char: 任意のテキスト式です。

例

UPPER('This is an emergency')は、文字列THIS IS AN EMERGENCYを返します。

USER

USERは、セッション・ユーザー(ログオンしているユーザー)の名前を返します。

戻り値

VARCHAR2

構文

USER

例

USERは、GLOBALのような値を返します。

VSIZE

VSIZEは、式の内部表現のバイト数を返します。NULL式の場合はNULLを返します。

戻り値

NUMBER

構文

VSIZE (expr)

引数

expr: 任意のデータ型の式です。

例

VSIZE('Sound of thunder')は値16を返します。

VSIZE(CHANNEL.LONG_DESCRIPTION)は次の値を返します。

チャネル

VSIZE

カタログ

7

直接販売

12

インターネット

8

WIDTH_BUCKET

WIDTH_BUCKETを使用すると、均等なサイズの間隔に分割されたヒストグラム範囲を作成できます。この関数は、式の値が含まれるバケット番号を返します。

必要であれば、WIDTH_BUCKETは、番号0のアンダーフロー・バケットと、番号num_buckets+1のオーバーフロー・バケットを作成します。このようなバケットは指定範囲外の値を処理し、端点の合理性をチェックするときに役立ちます。

戻り値

NUMBER

構文

WIDTH_BUCKET
(expr, min_value, max_value, num_buckets)

引数

exprはヒストグラムを作成する式です。この式は、数値またはdatetime値、あるいは任意の値になるように評価される必要があります。exprがNULLと評価されると、関数はNULLを返します。

min_valueおよびmax_valueはexprで受入れ可能な範囲の端点を表す式です。これらの式は両方とも、数値またはdatetime値になるように評価される必要があります。いずれもNULLに評価されることはできません。

num_bucketsはバケット数を表す式です。この式は、正の整数に評価される必要があります。

例

WIDTH_BUCKET(13, 0, 20, 4)は、値3を返します。0から20までの範囲に4つのバケットを作成し、13をバケット3に含めます。

WIDTH_BUCKET(-5, 0, 20, 4)は、値0を返します。値-5は範囲開始を下回る値です。

A 予約語

この付録にはOLAP式構文の予約語を示します。

予約語

OLAP式構文の予約語を次に示します。これらの予約語とOracle Databaseの予約語を、オブジェクト名に使用しないでください。使用する場合は、必ず二重引用符で囲んで式構文に使用してください。

Oracle Databaseの予約語のリストについては、『Oracle Database SQL言語リファレンス』を参照してください。

AGGREGATE
AGGREGATES
ALL
ALLOW
ANALYZE
ANCESTOR
AND
ANY
AS
ASC
AT
AVG
BETWEEN
BINARY_DOUBLE
BINARY_FLOAT
BLOB
BRANCH
BUILD
BY
BYTE
CASE
CAST
CHAR
CHILD
CLEAR
CLOB
COMMIT
COMPILE
CONSIDER
COUNT
DATATYPE
DATE
DATE_MEASURE
DAY
DECIMAL
DELETE
DESC
DESCENDANT
DIMENSION
DISALLOW
DIVISION
DML
ELSE
END
ESCAPE
EXECUTE
FIRST
FLOAT
FOR
FROM
HIERARCHIES
HIERARCHY
HOUR
IGNORE
IN
INFINITE
INSERT
INTEGER
INTERVAL
INTO
IS
LAST
LEAF_DESCENDANT
LEAVES
LEVEL
LEVELS
LIKE
LIKEC
LIKE2
LIKE4
LOAD
LOCAL
LOG_SPEC
LONG
MAINTAIN
MAX
MEASURE
MEASURES
MEMBER
MEMBERS
MERGE
MLSLABEL
MIN
MINUTE
MODEL
MONTH
NAN
NCHAR
NCLOB
NO
NONE
NOT
NULL
NULLS
NUMBER
NVARCHAR2
OF
OLAP
OLAP_DML_EXPRESSION
ON
ONLY
OPERATOR
OR
ORDER
OVER
OVERFLOW
PARALLEL
PARENT
PLSQL
PRUNE
RAW
RELATIVE
ROOT_ANCESTOR
ROWID
SCN
SECOND
SELF
SERIAL
SET
SOLVE
SOME
SORT
SPEC
SUM
SYNCH
TEXT_MEASURE
THEN
TIME
TIMESTAMP
TO
UNBRANCH
UPDATE
USING
VALIDATE
VALUES
VARCHAR2
WHEN
WHERE
WITHIN
WITH
YEAR
ZERO
ZONE

特殊記号

表A-1に、OLAP式構文で使用される記号を示します。これらをリテラル文字として入力するには、他のリテラル・テキストと同様に引用符で囲みます。

表A-1 OLAP式構文の記号

記号

説明

,

カンマ

||

連結

/

除算

=

等しい

>

次より大きい

>=

次より大きいか等しい

[

左大カッコ

(

左丸カッコ

<

次より小さい

<=

次より小さいか等しい

-

マイナス

!=

等しくない

<>

等しくない

^=

等しくない

+

プラス

]

右大カッコ

)

右丸カッコ

*

スター

Oracleの法律上の注意点

コピーライト

Copyright © 1994-2017, Oracle and/or its affiliates. All rights reserved.

ライセンス制約の保証と結果的に生じる損害の免責

このソフトウェアおよび関連ドキュメントの使用と開示は、ライセンス契約の制約条件に従うものとし、知的財産に関する法律により保護されています。ライセンス契約で明示的に許諾されている場合もしくは法律によって認められている場合を除き、形式、手段に関係なく、いかなる部分も使用、複写、複製、翻訳、放送、修正、ライセンス供与、送信、配布、発表、実行、公開または表示することはできません。このソフトウェアのリバース・エンジニアリング、逆アセンブル、逆コンパイルは互換性のために法律によって規定されている場合を除き、禁止されています。

保証免責

ここに記載された情報は予告なしに変更される場合があります。また、誤りが無いことの保証はいたしかねます。誤りを見つけた場合は、オラクルまでご連絡ください。

制限付権利について

このソフトウェアまたは関連ドキュメントを、米国政府機関もしくは米国政府機関に代わってこのソフトウェアまたは関連ドキュメントをライセンスされた者に提供する場合は、次の通知が適用されます。

U.S. GOVERNMENT END USERS: Oracle programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, delivered to U.S. Government end users are "commercial computer software" pursuant to the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such, use, duplication, disclosure, modification, and adaptation of the programs, including any operating system, integrated software, any programs installed on the hardware, and/or documentation, shall be subject to license terms and license restrictions applicable to the programs. No other rights are granted to the U.S. Government.

危険な用途への使用について

このソフトウェアまたはハードウェアは様々な情報管理アプリケーションでの一般的な使用のために開発されたものです。このソフトウェアまたはハードウェアは、危険が伴うアプリケーション(人的傷害を発生させる可能性があるアプリケーションを含む)への用途を目的として開発されていません。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用する際、安全に使用するために、適切な安全装置、バックアップ、冗長性(redundancy)、その他の対策を講じることは使用者の責任となります。このソフトウェアまたはハードウェアを危険が伴うアプリケーションで使用したことに起因して損害が発生しても、Oracle Corporationおよびその関連会社は一切の責任を負いかねます。

商標と登録商標について

OracleおよびJavaはオラクルおよびその関連会社の登録商標です。その他の社名、商品名等は各社の商標または登録商標である場合があります。

Intel、Intel Xeonは、Intel Corporationの商標または登録商標です。すべてのSPARCの商標はライセンスをもとに使用し、SPARC International, Inc.の商標または登録商標です。AMD、Opteron、AMDロゴ、AMD Opteronロゴは、Advanced Micro Devices, Inc.の商標または登録商標です。UNIXは、The Open Groupの登録商標です。

第三者のコンテンツ、製品、サービスに対する免責事項

このソフトウェアまたはハードウェア、そしてドキュメントは、第三者のコンテンツ、製品、サービスへのアクセス、あるいはそれらに関する情報を提供することがあります。適用されるお客様とOracle Corporationとの間の契約に別段の定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスに関して一切の責任を負わず、いかなる保証もいたしません。適用されるお客様とOracle Corporationとの間の契約に定めがある場合を除いて、Oracle Corporationおよびその関連会社は、第三者のコンテンツ、製品、サービスへのアクセスまたは使用によって損失、費用、あるいは損害が発生しても一切の責任を負いかねます。

Pre-General Availability (一般提供前)版のドキュメントについて

このドキュメントがPre-General Availability (一般提供前)版の場合:

このドキュメントはPre-General Availability (一般提供前)版であり、デモおよび暫定使用のみを目的としたものです。このソフトウェアを使用するハードウェアに限定するものではありません。Oracle Corporationおよびその関連会社は、このドキュメントに関して一切の責任を負わず、いかなる保証もいたしません。また、このドキュメントを使用したことによって損失、費用、あるいは損害が発生しても、一切の責任を負いかねます。

非公開のPre-General Availability (一般提供前)版のドキュメントについて

このドキュメントが非公開のPre-General Availability (一般提供前)版の場合:

このドキュメントに含まれる情報は、情報の共有のみを目的としたものであって、顧客諮問委員会(Customer Advisory Board)のメンバーとしてのお客様の立場でのみ、またはお客様のPre-General Availability Trial Agreement (Pre-GAトライアル契約)のみに従って検討されるべきものとします。マテリアル、コード、または機能の提供をお約束するものではなく、購入決定を行う際の判断材料とすべきではありません。このドキュメントに記載されている特徴または機能の開発、リリースおよび時期については、オラクルの裁量により決定されます。

このドキュメントには、ソフトウェアまたは印刷物などの形式を問わず、オラクルが独占的な権利を有する財産的情報が含まれています。この機密資料へのアクセスと使用は、お客様とオラクルとの間で締結され、お客様が遵守に同意した、Oracle Master Agreement、Oracle License and Oracle Services Agreement (オラクル・ライセンスおよびサービスに関する契約書)、Oracle Partner Network Agreement、Oracle Distribution Agreementまたはその他のライセンス契約の条件に従うものとします。このドキュメントとその内容の開示、コピー、複製および配布には、オラクルによる事前の承諾を必要とします。このドキュメントはライセンス契約の一部となるものではなく、オラクルおよびその子会社や関連会社との契約を構成するものではありません。

ドキュメントのアクセシビリティ

オラクルのアクセシビリティについての詳細情報は、Oracle Accessibility ProgramのWebサイト(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=docacc)を参照してください。

Oracle Supportへのアクセス

サポートをご契約のお客様には、My Oracle Supportを通して電子支援サービスを提供しています。詳細情報は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=info)か、聴覚に障害のあるお客様は(http://www.oracle.com/pls/topic/lookup?ctx=acc&id=trs)を参照してください。