select .5 as colm from dual;
将0.5
作为输出
但是
select .5||'$' as colm from dual;
结果为.5$
。为什么我没有得到0.5$
如何在第二个查询中实现0.5$
?
答案 0 :(得分:2)
我们可以像下面这样做,而不是追加。以预期格式格式化货币。
select TO_CHAR(.5,'FM999999990.099999999$') as colm from dual;
否则,您仍然可以将货币符号连接起来,
select TO_CHAR(.5,'FM999999990.099999999')||'$' as colm from dual;
关键是你必须在连接之前明确提到数字格式。
文档中详细介绍了格式模型。 Read it here
答案 1 :(得分:1)
Oracle安装程序:
CREATE TABLE your_table ( value ) AS
SELECT 0.5 FROM DUAL UNION ALL
SELECT 5 FROM DUAL;
<强>查询强>:
SELECT value,
REGEXP_REPLACE(
TO_CHAR( value, 'FM9999999990.99' ),
'\.$'
) || '$' AS formatted_value,
CASE
WHEN TRUNC( value ) = value
THEN TO_CHAR( value, '9999999990' )
ELSE TO_CHAR( value, 'FM9999999990.99' )
END || '$' AS alternate_value,
TO_CHAR( value, '9999999990.99L' ) AS currency_value
FROM your_table;
<强>输出强>:
VALUE FORMATTED_VALUE ALTERNATE_VALUE CURRENCY_VALUE
----- --------------- --------------- --------------
0.5 0.5$ 0.5$ 0.50$
5 5$ 5$ 5.00$
答案 2 :(得分:1)
您喜欢将$
写为常量字符串还是您的本地货币符号(美元)?
在以后的情况下,此解决方案可能适合您:
SELECT TO_CHAR(0.5555, 'fm999999990D99L') from dual;
请参阅TO_CHAR - Number Format Elements:
- →
在指定位置返回本地货币符号( NLS_CURRENCY参数的当前值。)。
答案 3 :(得分:-1)
你无法连接&#34; NUMBER&#34;带字符串字段的字段。
在你的情况下.5是一个数字&#39; $&#39;是一个字符串。因此,如果您希望您的结果为&#39; 0.5 $&#39;你必须传递0.5作为字符串,如下所示: -
select '0.5'||'$' as colm from dual;