如何解决如何在点之前获取不带空的数字?
我需要 .00012 $ 从0.00012 但 1.0002 $起1.0002 事后可能吗?
解决方法
您可以使用以下内容-
With t as
(Select 1.0002 As Value
UNION ALL
Select .00012 As Value
)
Select to_char(Value,concat('FM$999,999,990D',repeat('0',length(cast(Value as varchar))-2))) from t;
下面是一个DB小提琴链接,用于说明-https://dbfiddle.uk/?rdbms=postgres_9.5&fiddle=a8e9a3207305b011f5bf7be58ce04180
编辑:当我对问题进行更多的思考时,我意识到上面的解决方案适用于您共享的示例,但这不是通用的解决方案。以下是解决问题的更通用方法:
With t as
(Select 1.0002 As Value
UNION ALL
Select .00012 As Value
UNION ALL
Select 100.003 As Value
UNION ALL
Select 12.34456 As Value
UNION ALL
Select 5000.30 As Value
)
Select to_char(Value,length(cast(Value as varchar))-length(cast(ROUND(Value,0) as varchar))-1))) As Amt from t;
DB小提琴链接-https://dbfiddle.uk/?rdbms=postgres_9.5&fiddle=ff6f59fdd499941ee1cb1e0fc57e08ca
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。