如何在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
开始,然后我会适当地调整列。我希望它看起来很漂亮