4

使用 Oracle to_char(number) 函数,是否可以将 ascii 字符附加到返回的字符串?

具体来说,我需要在返回的字符串中添加一个百分比字符。

"select to_char(89.2244, '999G999G999G999G990D00') from dual" --> 返回 "89.22"。我需要一个返回“89.22%”的格式模式。

我通过 Application Express 中的报告来使用它,所以不能简单地将“%”连接到查询中,我需要将它放在数字格式中。

4

4 回答 4

5

所以你不能用 CONCAT 包装 to_char 吗?

select concat(to_char(89.2244, '999G999G999G999G990D00'),'%') from dual
于 2009-02-25T14:07:08.623 回答
2

您不能以数字格式正确执行此操作。

如果您能够NLS_CURRENCY为您的会话进行更改,您可以执行以下操作:

SELECT  TO_CHAR(1.2, '999G999G999G999G990D00L' /*, 'NLS_CURRENCY=%' */)
FROM    dual

--- 
1,20%
于 2009-02-25T14:14:06.703 回答
2

快速而肮脏的方式:

选择 to_char(89.2244, '999G999G999G999G990D00L', 'NLS_CURRENCY=''%''') 从双;

于 2009-02-25T14:15:43.187 回答
0
SYS @ orant11g >select to_char(89.2244, '999G999G999G999G990D00')||'%' from dual;
TO_CHAR(89.2244,'999G999
------------------------
              89.22%

只需使用 || bar 而不是 concat 函数。

于 2017-01-12T18:37:31.443 回答