Oracleの数値の出力フォーマットを変更する方法についてです。
例えば小数点の「0.1」はデフォルトの状態では「.1」と表示されます。一般的には違和感を感じると思います。「0.1」と表示したいことが多いでしょう。そんなときには数値の出力フォーマットを指定すればOKです。
-- (1)
SET NUMFORMAT 出力フォーマット
-- 省略形
SET NUMF 出力フォーマット
or
-- (2)
COLUMN カラム名 FORMAT 出力フォーマット
-- 省略形
COL カラム名 FOR 出力フォーマット
(1)はすべての数値に対する指定です。
(2)は特定のカラムに対する指定です。
(1)と(2)が両方指定された場合には、(2)が優先されます。
「NUMBER(10,3)」の「C1」というカラム名に対するフォーマットとしては、次のようなものが適切でしょう。
COLUMN C1 FORMAT 9999990.999
or
COLUMN C1 FORMAT 9,999,990.999
「出力フォーマット」の指定には、基本的に「9」(もしくは「0」)の数で桁数を指定します。もしも出力する値の桁が指定されたフォーマットの桁を超えている場合には、その行の項目は「#」埋めの文字列になってしまいます。型の桁数にあわせたフォーマットにしておくことが無難でしょう。
整数部分の1桁目に「9」の替わりに「0」を指定することで、整数部分が0であっても0を表示します。最上位桁に「0」を指定すると上位桁を0埋めした文字列を出力します。
フォーマットの出力例を示します。
値 |
初期状態 |
9999990.999 |
0999999.999 |
9999999.999 |
0 |
0 |
0.000 |
0000000.000 |
.000 |
1 |
1 |
1.000 |
0000001.000 |
1.000 |
-0.1 |
-.1 |
-0.100 |
-0000000.100 |
-.100 |
1234567.089 |
1234567.09 |
1234567.089 |
1234567.089 |
1234567.089 |
※いろいろ試したのですが、上記の例で「0」「1」「-0.1」「1234567.089」と表示するようなフォーマット指定はできないようです。
フォーマットの指定には、以下のものもあります。
- 通貨記号を出力
- 負の数を「<>」でくくって出力
- 正の場合にプラス記号を出力
- 科学表記法で出力
- ローマ数字で出力
しかし…あまり使わないのではないかと思います。
「9999990.999」か「9,999,990.999」を覚えておけば十分だと思います。
|
要素 |
例 |
説明 |
桁数指定 |
9 |
9999 |
9の数で指定した桁数の値が表示されます。値には、正の値の場合は先行空白、負の値の場合は先頭に先行マイナス記号が表示されます。先行0(ゼロ)には空白が表示されます。0(ゼロ)の値には0(ゼロ)が表示されます。 |
整数部 |
0 |
0999 |
先行0(ゼロ)が表示されます。 |
9990 |
後続0(ゼロ)が表示されます。 |
B |
B9999 |
書式モデル内の0(ゼロ)にかかわらず、整数部が0(ゼロ)の場合、固定小数点数の整数部に空白が表示されます。 |
小数部 |
. (ピリオド) |
99.99 |
数値の整数部と小数部を区切るピリオド(小数点)が表示されます。 |
D |
99D99 |
数値の整数部と小数部を区切る小数点文字が表示されます。 |
TM |
TM |
小数点文字の最小の数が表示されます。デフォルトはTM9です。出力に使用される固定表記法の場合は最大64文字、科学表記法の場合は65文字以上です。TMの前に他の要素を指定することはできません。TMの後には単一の9またはEのみを指定できます。 |
カンマ |
,(カンマ) |
9,999 |
指定した位置にカンマが表示されます。 |
G |
9G999 |
数値の整数部の指定した位置に桁グループ・セパレータが表示されます。 |
正負記号 |
S |
S9999 |
先行マイナス記号またはプラス記号が表示されます。 |
9999S |
後続マイナス記号またはプラス記号が表示されます。 |
MI |
9999MI |
負の値の後に後続マイナス記号が表示されます。正の値の後に後続空白が表示されます。 |
PR |
9999PR |
負の値は<山カッコ>で囲まれて表示されます。正の値の場合は、先行空白および後続空白が表示されます。 |
通貨記号 |
L |
L999 |
指定した位置に各国通貨記号が表示されます。 |
U |
U9999 |
指定した位置に、第2通貨記号が表示されます。 |
$ |
$9,999 |
先行ドル記号が表示されます。 |
C |
C999 |
指定した位置にISO通貨記号が表示されます。 |
その他 |
EEEE |
9.999EEEE |
値が科学表記法で表示されます。(書式には確実に4つの「E」を含める必要があります)。 |
RN |
RN |
大文字のローマ数字が表示されます。値は1~3999の整数です。 |
rn |
rn |
小文字のローマ数字が表示されます。値は1~3999の整数です。 |
2011/11/06
|