使用 Oracle to_char(number) 函数,是否可以将 ascii 字符附加到返回的字符串?
具体来说,我需要在返回的字符串中添加一个百分比字符。
"select to_char(89.2244, '999G999G999G999G990D00') from dual" --> 返回 "89.22"。我需要一个返回“89.22%”的格式模式。
我通过 Application Express 中的报告来使用它,所以不能简单地将“%”连接到查询中,我需要将它放在数字格式中。
使用 Oracle to_char(number) 函数,是否可以将 ascii 字符附加到返回的字符串?
具体来说,我需要在返回的字符串中添加一个百分比字符。
"select to_char(89.2244, '999G999G999G999G990D00') from dual" --> 返回 "89.22"。我需要一个返回“89.22%”的格式模式。
我通过 Application Express 中的报告来使用它,所以不能简单地将“%”连接到查询中,我需要将它放在数字格式中。
所以你不能用 CONCAT 包装 to_char 吗?
select concat(to_char(89.2244, '999G999G999G999G990D00'),'%') from dual
您不能以数字格式正确执行此操作。
如果您能够NLS_CURRENCY
为您的会话进行更改,您可以执行以下操作:
SELECT TO_CHAR(1.2, '999G999G999G999G990D00L' /*, 'NLS_CURRENCY=%' */)
FROM dual
---
1,20%
快速而肮脏的方式:
选择 to_char(89.2244, '999G999G999G999G990D00L', 'NLS_CURRENCY=''%''') 从双;
SYS @ orant11g >select to_char(89.2244, '999G999G999G999G990D00')||'%' from dual;
TO_CHAR(89.2244,'999G999 ------------------------ 89.22%
只需使用 || bar 而不是 concat 函数。