Oracle除法问题

发布于 2024-10-14 20:04:50 字数 219 浏览 3 评论 0原文

我有这个查询:

select (round(scp.qty/ppc.qty) * 100,4) || '%' as qtyco from .....

问题是,它不是返回“0.123%”,而是只返回“.123%”

任何想法为什么......或者我该如何解决这个问题? 两个 qty 列的类型是 NUMBER(12,0)

谢谢!

I have this query :

select (round(scp.qty/ppc.qty) * 100,4) || '%' as qtyco from .....

The problem is that instead of returning "0.123 %" it returns just ".123 %"

Any ideea why..or how could i fix this?
the types of the two qty columns are NUMBER(12,0)

Thanks!

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

一杯敬自由 2024-10-21 20:04:50

这只是一个显示问题:由于您使用的是 || 连接运算符,因此您的数字会转换为 varchar(Oracle 会隐式执行转换)。您应该明确询问格式,例如:

select to_char(round(scp.qty / ppc.qty * 100, 4), 'fm990.9999') || '%' as qtyco

this is just a display issue: your number is converted to a varchar since you're using the || concatenation operator (Oracle performs the conversion implicitely). You should ask for a format explicitely, for example:

select to_char(round(scp.qty / ppc.qty * 100, 4), 'fm990.9999') || '%' as qtyco
太傻旳人生 2024-10-21 20:04:50

Oracle 可以自动将数字转换为字符。我认为手动转换会更好,这样你就可以控制如何做。

Oracle can convert the number to char automatically. I think it would be better to convert it manually, so you would have control how to do it.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文