2017-12-06 5 views
0

ビューから選択すると、数値データ型のために先行するゼロの結果が再び発生します。先行ゼロが数値データ型で機能しない

create table test_number_type(c1 number); 

insert into test_number_type values(100.12); 

insert into test_number_type values(0.12); 

commit; 

create or replace view test_data_type as 
select to_number(trim(leading 0 from c1)) c_num_check from test_number_type; 

desc test_data_type 
+0

数字の書式を設定して、表示時の表示方法を制御できます:-) –

+3

DBMSにタグを付けてください(恐らくOracle?) – F0XS

答えて

3

あなたの懸念は完全に間違っています。数字は内部表現を使用して格納されます。それらは文字列として格納されません。すべてこれらは(以下の警告と)同じ数を表すので、:

0.12 
.12 
000000.12 

警告は内部表現がスケールと精度の点で多少異なる可能性があることです。

数字がどのように表示されるかは、実際には列までではありません。出力を制御する場合は、値を文字列に変換します。関数to_char()を使用すると、先行ゼロを制御できます。

関連する問題