- PR -

TO_CHARの変換関数について。

1
投稿者投稿内容
未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 80
投稿日時: 2006-10-16 14:41
現在 Oracle を勉強しています。
その中で変換関数について質問があります。

”TO_CHARなど変換関数の数値書式では「9」や「0」を1桁の数値とみなし、
「0」は先行0を表示するし、「9」は先行0を表示しません。”
という説明で、
以下の@があったので、どうなるのだろうと思い、試したところ、
Aの結果になりました。


@select TO_CHAR(4567, '000,000.99') FROM dual;

A
TO_CHAR(456
-----------
004,567.00

「004,567」になると思ったので、以下のことを疑問に思ってしまったのです。
a)@の'000,000.99'の'99'の部分はなぜ、'00'となるのでしょうか。

b)'「9」は先行0を表示しません'とは、どういうことなのでしょうか。

このa)とb)の疑問に対してご教授お願いいたします。

OS:WindowsXP
Oracleのバージョン:10g
SQL*Plusによりデータベースにアクセスしています。
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-16 15:02
a)@の'000,000.99'の'99'の部分はなぜ、'00'となるのでしょうか。
小数部だから

b)'「9」は先行0を表示しません'とは、どういうことなのでしょうか。
前ゼロを表示しない

未記入
ベテラン
会議室デビュー日: 2004/08/18
投稿数: 80
投稿日時: 2006-10-16 15:20
ぷさいくろうさん、返答して下さってありがとうございます。

言葉足らずで申し訳ございません。
b)に関してですが、
'「9」は先行0を表示しません'とは、どこの「先行0」、「前のゼロ」とは、一番前の0のことなのでしょうか。 「前のゼロは表示しない」とあるのに、Aの004,567.00の前の部分に、0があるのは、なぜ。思ったのです。

うまく表現できなくて、申し訳ございません。
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-16 15:24
前ゼロでググるとええよ
shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-10-16 16:45
引用:

fuuさんの書き込み (2006-10-16 14:41) より:
以下の@があったので、どうなるのだろうと思い、試したところ、
Aの結果になりました。


@select TO_CHAR(4567, '000,000.99') FROM dual;

A
TO_CHAR(456
-----------
004,567.00


「0」と「9」の違いを確認したいようでしたら、そのまま「0」を「9」に置き換えて

select TO_CHAR(4567, '999,999.99') FROM dual;

もテストしてみればよかったのでは?
1

スキルアップ/キャリアアップ(JOB@IT)