Sql 甲骨文编号问题
你好 我有个问题需要你的帮助 客户希望发票金额显示如下: 发票金额示例Sql 甲骨文编号问题,sql,oracle,Sql,Oracle,你好 我有个问题需要你的帮助 客户希望发票金额显示如下: 发票金额示例 -405.12 to be shown as 000000040512 & 下面的查询对于405.12金额可以正常工作,但是对于400.00金额,它会在右侧删除两个0 LPAD(REPLACE((invoiceamt*-1),'.',''),12,0) 我如何解决这个问题 多谢各位 Aaron忘记替换,只需将invoiceamt乘以-100,然后将LPAD乘以所需长度。忘记替换,只需将invoiceamt乘以-100,
-405.12 to be shown as 000000040512
&
下面的查询对于405.12金额可以正常工作,但是对于400.00金额,它会在右侧删除两个0
LPAD(REPLACE((invoiceamt*-1),'.',''),12,0)
我如何解决这个问题
多谢各位
Aaron忘记替换,只需将invoiceamt乘以-100,然后将LPAD乘以所需长度。忘记替换,只需将invoiceamt乘以-100,然后将LPAD乘以所需长度。我建议
to_Char(abs(invoiceamt) * 100, '000000000000')
在哪里
我建议
to_Char(abs(invoiceamt) * 100, '000000000000')
在哪里
让我想起了:
返回一个乘以10^n的值,如有必要,将其四舍五入,其中n是V后面的9的数字
但是你可以用零而不是9来保持前导零,并添加FM来删除前导空格,这是一个负数符号,而你没有。因此,您还可以:
with t (n) as (
select -405.12 from dual
union all select -400 from dual
)
select n, to_char(abs(n), 'FM0000000000V00') as result
from t;
N RESULT
---------- -------------
-405.12 000000040512
-400 000000040000
让我想起了:
返回一个乘以10^n的值,如有必要,将其四舍五入,其中n是V后面的9的数字
但是你可以用零而不是9来保持前导零,并添加FM来删除前导空格,这是一个负数符号,而你没有。因此,您还可以:
with t (n) as (
select -405.12 from dual
union all select -400 from dual
)
select n, to_char(abs(n), 'FM0000000000V00') as result
from t;
N RESULT
---------- -------------
-405.12 000000040512
-400 000000040000
乘以-100,而不是替换?出于兴趣,如何显示+400.00的发票金额?查询仅返回负数发票,因此+400.00不会以-100的倍数返回,而不是替换?出于兴趣,如何显示+400.00的发票金额?查询仅返回负数发票,因此+400.00不会返回如此简单但如此困难。谢谢你,工作起来很有魅力。很简单但很难。谢谢你,很有魅力。