oracle 文本转数字,Oracle:需要将数值转换为文本并保留 - 已解决

解决方案: Oracle不存储或显示格式(即使在非持久值上如下所示)。格式化程序必须应用于除此之外的任何其他内容。感谢张贴的人。Oracle:需要将数值转换为文本并保留 - 已解决

问题: 认为这将是微不足道的。如果十进制值是0.40,我想TO_CHAR(0.40)并返回'0.40'。同样,50应该是'char'd到'50'。就像进去一样简单,但是作为CHAR,在所有情况下都是。到目前为止,我已经试过如下:

select to_char(a, '99D90') test1,

to_char(a, '90D90') test2,

to_char(a, 'FM90D99') test3,

rtrim(to_char(a, 'FM90D99'), to_char(0, 'D')) test4

from (

select 50 a from dual

union all select 50.57 from dual

union all select 5.57 from dual

union all select 0.35 from dual

union all select 0.4 from dual

union all select 0.80 from dual

union all select .88 from dual

)

order by a;

回报:

TEST1 TEST2 TEST3 TEST4

------ ------ ------ ------

.35 0.35 0.35 0.35

.40 0.40 0.4 0.4

.80 0.80 0.8 0.8

.88 0.88 0.88 0.88

5.57 5.57 5.57 5.57

50.00 50.00 50. 50

50.57 50.57 50.57 50.57

正如你所看到的,有什么可以在一种情况下工作,没有在另一个。我是否必须测试整数,十进制数,然后是前导和尾随零,并为每一个应用不同的格式化程序?是否只有一个简单的类似铸造的构造? (尝试转换btw,类似的问题)。

+0

你怎么知道你的十进制值是'0.40'而不是'0.4'或(让说)'0.400'? –

+0

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值