DECFLOAT_FORMAT スカラー関数

DECFLOAT_FORMAT 関数は、指定されたフォーマットを使用して、入力ストリングを DECFLOAT(34) に変換処理した値を戻します。

Read syntax diagramSkip visual syntax diagramDECFLOAT_FORMAT(string-expression ,format-string )

スキーマは SYSIBM です。

ストリング式
CHAR および VARCHAR データ・タイプの値を戻す式。 Unicode データベースでは、指定された引数が GRAPHIC または VARGRAPHIC データ・タイプの場合、 function.Leading および末尾ブランクはストリングから除去されます。 format-string が指定されていない場合、ブランクが除去された後のサブストリングは、SQL 整数、10 進数、浮動小数点数、または 10 進浮動小数点定数を形成するための規則に準拠していなければならず (SQLSTATE 22018)、さらに 42 バイト以下でなければなりません (SQLSTATE 42820)。format-string が指定されている場合、サブストリングは、その指定されたフォーマットに対応する数のコンポーネントを含んでいなければなりません (SQLSTATE 22018)。
フォーマット・ストリング
組み込みの文字ストリング・データ・タイプ (CLOB を除く) である値 を戻す式。 Unicode データベースでは、指定した引数が GRAPHIC ストリングであると (DBCLOB を除く)、まず文字ストリングに変換されてから、関数が評価されます。 実際の長さは、255 バイト以下でなければなりません (SQLSTATE 22018)。 この値は、DECFLOAT 値へ変換する際に string-expression を解釈するための形式を指定したテンプレートです。 接頭部として指定するフォーマット・エレメントは、テンプレートの先頭でのみ使用できます。 接尾部として指定するフォーマット・エレメントは、テンプレートの末尾でのみ使用できます。 フォーマット・エレメントには、大/小文字の区別があります。 テンプレートには、複数のMIS、または PR フォーマット・エレメントが含まれてはなりません (SQLSTATE 22018)。
表 1. DECFLOAT_FORMAT 関数のフォーマット・エレメント
フォーマット・エレメント 説明
0 または 9 0 または 9 のいずれも数字を表します。
MI 接尾部: string-expression が負の数値を表す場合は、末尾に負符号 (-) が必要です。 string-expression が正の数値を表す場合は、末尾のブランクを指定できます。
S 接頭部: string-expression が負の数値を表す場合は、先頭に負符号 (-) が必要です。 string-expression が正の数値を表す場合は、先行ブランクまたは正符号 (+) を指定できます。
PR 接尾部: string-expression が負の数値を表す場合、先頭に「より小さい」 (<) 文字、および末尾に 「より大きい」 (>) 文字が必要です。 string-expression が正の数値を表す場合は、先行スペースまたは末尾スペースを指定できます。
$ 接頭部: 先頭にドル記号 ($) を指定しなければなりません。
, コンマの位置を指定します。 このコンマは、グループ分離文字として使用されます。
. ピリオドの位置を指定します。 このピリオドは小数点として使用されます。

format-string が指定されていない場合、string-expression は、SQL 整数、10 進数、浮動小数点数、または 10 進浮動小数点定数を形成するための規則に準拠していなければならず (SQLSTATE 22018)、さらに 42 バイト以下でなければなりません (SQLSTATE 42820)

結果は、DECFLOAT(34) です。 最初または 2 番目の引数が NULL になる可能性がある場合、結果も NULL になる可能性があります。 最初または 2 番目の引数が NULL であれば、結果は NULL 値になります。

  • 代替構文: TO_NUMBER は DECFLOAT_FORMAT の同義語です。

  • 例 1: 以下の例は、123.45 を返します。
    DECFLOAT_FORMAT( '123.45' )
  • 例 2: 以下の例は、-123456.78 を返します。
    DECFLOAT_FORMAT( '-123456.78' )
  • 例 3: 以下の例は、123456.78 を返します。
    DECFLOAT_FORMAT( '+123456.78' )
  • 例 4: 以下の例は、12300 を返します。
    DECFLOAT_FORMAT( '1.23E4' )
  • 例 5: 以下の例は、123.40 を返します。
    DECFLOAT_FORMAT( '123.4', '9999.99' )
  • 例 6: 以下の例は、1234 を返します。
    DECFLOAT_FORMAT( '001,234', '000,000' )
  • 例 7: 以下の例は、1234 を返します。
    DECFLOAT_FORMAT( '1234 ', '9999MI' )
  • 例 8: 以下の例は、-1234 を返します。
    DECFLOAT_FORMAT( '1234-', '9999MI' )
  • 例 9: 以下の例は、1234 を返します。
    DECFLOAT_FORMAT( '+1234', 'S9999' )
  • 例 10: 以下の例は、-1234 を返します。
    DECFLOAT_FORMAT( '-1234', 'S9999' )
  • 例 11: 以下の例は、1234 を返します。
    DECFLOAT_FORMAT( ' 1234 ', '9999PR' )
  • 例 12: 以下の例は、-1234 を返します。
    DECFLOAT_FORMAT( '<1234>', '9999PR' )
  • 例 13: 以下の例は、123456.78 を返します。
    DECFLOAT_FORMAT( '$123,456.78', '$999,999.99' )