よくつかう関数

2020年12月16日はじめてのWebFOCUS

このコンテンツでは、よくつかう関数についてご紹介しています。

必要ライセンスWebFOCUS Reporting Server制約事項
カテゴリ関数動作確認バージョン8.2.06

WebFOCUS 関数

レポートやグラフ作成時に利用できる、WebFOCUS で提供されている関数です。関数を使用することで、特定の計算や操作を簡単に実行することができます。

関数は、一時項目(COMPUTE、DEFINE)や変数の計算式のなかで利用できます。

なお、関数の種類や接続先のデータベースの種類によっては、関数の処理がSQLに変換されない場合があります。ご利用にあたり、あらかじめご了承ください。

フォーマット変換

数値を含む文字フィールドを数値フォーマットに変換したり、日付や数値フィールドを文字フォーマットに変換する関数です。

数値⇒文字列変換

EDIT(fieldname);

fieldname
変換したい値、またはフィールド名を指定します。
符号、小数点、および小数点以下のすべての数字は削除されます。
指定されたフィールドの長さに達するまで、先頭に 0 (ゼロ) を追加します。 例)1234 ⇒ 001234

DEFINE ALPHA_PRICE/A6 = EDIT(PRICE);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。


TO_CHAR(value)

value
変換したい値、またはフィールド名を指定します。

DEFINE ALPHA_STRING/A20 = TO_CHAR(NUMBER);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。
 数値の桁数分の左余白ができます。余白を削除する場合は、LTRIMを併用してください。

文字列⇒数値変換

EDIT(fieldname);

fieldname
変換したい値、またはフィールド名を指定します。
数値以外のその他の文字は 0 (ゼロ) を返します。

DEFINE DEPT_CODE/P6 = EDIT(CODE);

※一時項目で利用する場合、数値フォーマットとして「Pタイプ」や「Dタイプ」を指定します。


TO_NUMBER(value)

value
変換したい値、またはフィールド名を指定します。

DEFINE ALPHA_NUMBER/P6 = TO_NUMBER(STRING);

※一時項目で利用する場合、数値フォーマットとして「Pタイプ」や「Dタイプ」を指定します。

文字列⇒整数変換

EDIT(fieldname);

fieldname
変換したい値、またはフィールド名を指定します。
数値以外のその他の文字は 0 (ゼロ) を返します。

DEFINE DEPT_CODE/I6 = EDIT(CODE);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。


TO_INTEGER(value)

value
変換したい値、またはフィールド名を指定します。

DEFINE ALPHA_INT/I6 = TO_INTEGER(STRING);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

日付⇒文字変換

FPRINT(in_value, 'usageformat’, output)

in_value
変換したい値、またはフィールド名を指定します。

usageformat
変換するフィールドのフォーマットです。一重引用符(') で囲みます。

output
文字
一重引用符 (') で囲んだフォーマットまたは出力フィールド名です。

DEFINE ALPHA_DATE/A8 = FPRINT(TRANSDATE,'YMD', ALPHA_DATE);

※数値⇒文字列変換する際にも利用できます。この場合、先頭に 0 (ゼロ) を追加せずに文字フォーマットに
 変換できます。

日付の取り出し

日付フォーマットから指定した部分を取り出す関数です。

年の取り出し

DTPART(date, YEAR)

date
標準日付または日付時間フォーマットの日付を指定します。

YEAR
年を取り出す場合は、YEARを指定します。

DEFINE ALPHA_YEAR/I4 = DTPART(DATE,YEAR);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

月の取り出し

DTPART(date, MONTH)

date
標準日付または日付時間フォーマットの日付を指定します。

MONTH
月を取り出す場合は、MONTHを指定します。

DEFINE ALPHA_MONTH/I2 = DTPART(DATE,MONTH);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

日の取り出し

DTPART(date, DAY)

date
標準日付または日付時間フォーマットの日付を指定します。

DAY
日を取り出す場合は、DAYを指定します。

DEFINE ALPHA_DAY/I2 = DTPART(DATE,DAY);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

年月の取り出し

DTRUNC(date, MONTH)

date
標準日付または日付時間フォーマットの日付を指定します。

MONTH
年月を取り出す場合は、MONTHを指定します。

DEFINE ALPHA_YEAR_M/YYMDm = DTRUNC(DATE, MONTH);

※一時項目で利用する場合、年月フォーマットとして「YYMDm」を指定します。

年と四半期の取り出し

DTRUNC(date, QUARTER)

date
標準日付または日付時間フォーマットの日付を指定します。

QUARTER
年と四半期を取り出す場合は、QUARTERを指定します。

DEFINE ALPHA_YEAR_Q/YY-M-Dq = DTRUNC(DATE, QUARTER);

※一時項目で利用する場合、日付フォーマットとして「YY-M-Dq」を指定します。

文字列操作

文字列から指定した部分を切り出す関数です。

文字列の一部切り出し

SUBSTRING(string, position, length)

string
文字列を切り出す、元の文字列を指定します。

position
文字列を切り出す開始位置を指定します。

length
切り出す文字列の開始位置からの長さを指定します。
この値が元の文字列の長さを超える場合は、文字列の最後の文字の位置が終了位置となります。

DEFINE ALPHA_SUBSTR/A3 = SUBSTRING(STRING,2,3);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

区切り文字で取り出し

TOKEN(string, delimiter, number)

string
文字列を取り出す、元の文字列を指定します。

delimiter
文字列を取り出す際に区切りとなる区切り文字を指定します。

number
区切り文字で区切った文字列の何番目の文字列を取り出すか指定します。
負の値を指定した場合は、右から左に数えます。「-1」の場合は1番最後の文字列。

DEFINE ALPHA_TOKEN/A10 = TOKEN(STRING,'/',1);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

文字列の前後ブランクを削除

TRIM(where, pattern, string)

where
削除するパターンを指定します。
 LEADING  先頭の文字を削除します。
 TRAILING 末尾の文字を削除します。
 BOTH   先頭と末尾の文字を削除します。

pattern
文字列から削除する文字を1文字指定します。
この文字として、1つのブランクを指定することもできます。

string
対象となる文字列を指定します。

DEFINE ALPHA_TRIM/A10 = TRIM(BOTH, ' ', STRING);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

文字列の先頭ブランクを削除

LTRIM(string)

string
対象となる文字列を指定します。

DEFINE ALPHA_LTRIM/A10 = LTRIM(STRING);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

文字列の末尾ブランクを削除

RTRIM(string)

string
対象となる文字列を指定します。

DEFINE ALPHA_RTRIM/A10 = RTRIM(STRING);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

文字列の長さを取得

CHAR_LENGTH(string)

string
対象となる文字列を指定します。

DEFINE ALPHA_LENGTH/I4 = CHAR_LENGTH(STRING);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

文字列内の検索結果の開始位置を取得

POSITION(pattern, string)

pattern
文字列内を検索するパターン文字列を指定します。
この文字列として、1つのブランク文字を指定することもできます。

string
対象となる文字列を指定します。

DEFINE ALPHA_POS/I4 = POSITION('IS',STRING);

※一時項目で利用する場合、数値フォーマットとして「Iタイプ」を指定します。

文字列の置換

REPLACE(string, pattern, replacement)

string
対象となる文字列を指定します。

pattern
文字列内を検索するパターン文字列を指定します。
この文字列として、1つのブランク文字を指定することもできます。

replacement
置き換える文字列を指定します。

DEFINE ALPHA_REP/A20 = REPLACE(STRING, 'AND', 'OR');

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。

文字列の連結

string1 | string2

|(パイプ)
連結する文字列の間に指定することで文字列を連結することができます。

DEFINE ALPHA_CONCAT/A20 = STRING1 | STRING2;

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。


CONCAT(string1, string2)

string1
連結する文字列を指定します。

string2
連結する文字列を指定します。

DEFINE ALPHA_CONCAT/A20 = CONCAT(STRING1,STRING2);

※一時項目で利用する場合、文字フォーマットとして「Aタイプ」を指定します。