Decimal to Varchar without leading zeros

select d,
CASE WHEN d < 0 THEN '-' ELSE '' END
|| CASE INT(d) WHEN 0 THEN '0' ELSE '' END
|| STRIP(CHAR(ABS(d)),L,'0') strip_a
, SUBSTR('-0',1+SIGN(INT(SIGN(d))+1),2-ABS(SIGN(INT(d)))-SIGN(INT(SIGN(d))+1))
|| STRIP(CHAR(ABS(d)),L,'0') strip_b
, RTRIM(SUBSTR('-0 ',2+SIGN(INT(d*2-1+6e-17)),2-ABS(SIGN(INT(d)))))
|| STRIP(CHAR(ABS(d)),L,'0') strip_c
, strip(strip(left(d, 1), L, '0'), L, '+')|| strip(strip(substr(d, 2)), L, '0') strip_d
, rtrim (char (integer (d))) || '.'|| substr (char (d),locate ('.', char (d))+1,length (char (d)) - locate ('.', char (d))) strip_e

FROM (VALUES -001.267, 0, 1234.5, 0.123, -0.123) dm(d);

strip_a strip_b strip_c is correct,
strip_d and strip_e is not all correct


运行结果:
[quote]
D STRIP_A STRIP_B STRIP_C STRIP_E
------------------- --------------------- --------------------- ---------------------- -------------------------------
-1.267000 -1.267000 -1.267000 -1.267000 -1.267000
0.000000 0.000000 0.000000 0.000000 0.000000
1234.500000 1234.500000 1234.500000 1234.500000 1234.500000
0.123000 0.123000 0.123000 0.123000 0.123000
-0.123000 -0.123000 -0.123000 -0.123000 0.123000

5 record(s) selected.
[/quote]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值