数字掩码 &nls_参数 [英] Number masking & nls_parameter
本文介绍了数字掩码 &nls_参数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
所以我有一个查询:
SELECT ROUND(SUM(COLUMN1*(COLUMN3-COLUMN2)),2) FROM .... WHERE ....
四舍五入到小数点后两位.
ROUND to 2 decimals.
它返回这种格式 - 示例:
It returns this format - example:
5.25
231.12
.92
(预期输出:###0,00
):
5,25
231,12
0,92
那么,我该如何正确屏蔽它?
So, how can i mask this correctly ?
SELECT ROUND(
to_number(SUM(COLUMN1*(COLUMN3-COLUMN2)),'[FORMAT_MASK]', '[NLS_PARAM=]')
,0)
推荐答案
使用 TO_CHAR
在格式模型中适当指定十进制字符 D
Use TO_CHAR
specifying a decimal character D
in the format model appropriately
当您会话的 NLS_NUMERIC_CHARACTERS
为 ,.
( "decimal_character group_separator" ) 时,默认情况下或者您使用
When your session's NLS_NUMERIC_CHARACTERS
is ,.
( "decimal_character group_separator" ) by default or you've set it manually using
alter session set NLS_NUMERIC_CHARACTERS = ',.';
select to_char(231.12, '99999D99') from dual;
显示
231,12
您可以通过将 NLS_NUMERIC_CHARACTERS
指定为第三个参数来改变行为
You may alter the behaviour by assigning NLS_NUMERIC_CHARACTERS
as the 3rd argument
select to_char(231.12, '99999D99','NLS_NUMERIC_CHARACTERS='',.''') from dual;
231,12
这篇关于数字掩码 &nls_参数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文