如何在Oracle中格式化数字列?

如何在Oracle中格式化数字列?,oracle,format,numbers,sqlplus,Oracle,Format,Numbers,Sqlplus,我试图以一种好的方式spool输出,因此我将所有VARCHAR2列格式化为a5。 然而,我的问题列是:SLOTNUM类型编号(2)和feeadejustment类型编号(5,2)。 我的代码是: column SLOTNUM format 999; column FEEADJUSTMENT format 999.9; ......... column [other VARCHAR2] format a5; select * from allTables; 结果是: SLOTNUM DA

我试图以一种好的方式
spool
输出,因此我将所有VARCHAR2列格式化为a5。 然而,我的问题列是:
SLOTNUM
类型编号(2)和
feeadejustment
类型编号(5,2)。 我的代码是:

column SLOTNUM format 999;
column FEEADJUSTMENT format 999.9;
.........
column [other VARCHAR2]     format a5;
select * from allTables;
结果是:

SLOTNUM DATEV ACTUA NOTES FEEADJUSTMENT TREAT NAME                                          
------- ----- ----- ----- ------------- ----- -----                                        
     12 19-JU 19-ju Treat           2.5 12345 Flu                                              
        N-13  n-13  ment                6     Shot                                       
              00:00 succe                                                                                   
              :00   ssful                                                                                    
                    l                                                                                       

     15 20-JU 20-ju Appar           5.5 12345 Flu                                                 
        N-13  n-13  atus                6     Shot                                                         
              02:00 broke                                                                                     
              :00                                                                                              
fee调整
占用的空间超出了它的需要。为什么不将
格式999.9
截断
feedadjustment
列?

格式如下:

column SLOTNUM format a3;
column FEEADJUSTMENT format a5;
格式如下:

column SLOTNUM format a3;
column FEEADJUSTMENT format a5;

因为它使用的是列标题的长度,表示:

数字列的宽度等于标题的宽度或宽度 符号的格式加上一个空格,以较大者为准

可以使用较短的名称为列别名:

select slotnum as slotn, ...
您也可以将其视为字符串,但仍然需要别名:

select to_char(slotnum, 'FM9999') as slotn, ...
如果您愿意,您可以将别名设置为
slotnum
,并使用
格式a5
,但我认为这不太清楚


我不确定我是否会将强制所有内容都设置为
a5
描述为“好”,尤其是因为您的值比强制列包装的值要长。我想是口味的问题…

因为它使用的是列标题的长度,表示:

数字列的宽度等于标题的宽度或宽度 符号的格式加上一个空格,以较大者为准

可以使用较短的名称为列别名:

select slotnum as slotn, ...
您也可以将其视为字符串,但仍然需要别名:

select to_char(slotnum, 'FM9999') as slotn, ...
如果您愿意,您可以将别名设置为
slotnum
,并使用
格式a5
,但我认为这不太清楚


我不确定我是否会将强制所有内容都设置为
a5
描述为“好”,尤其是因为您的值比强制列包装的值要长。我想是口味问题吧……

谢谢你的回答+1。然而,这是行不通的,它会给你。勾选:谢谢你回答+1。然而,这是行不通的,它会给你。检查这个:是的,因为我有太多的专栏。。。我只是从
a5
开始,然后我会适当地调整列。我希望它看起来不错是的,因为我有太多的专栏。。。我只是从
a5
开始,然后我会适当地调整列。我希望它看起来很漂亮