数字掩码和nls_parameter

时间:2018-12-11 10:54:12

标签: sql oracle number-formatting

所以我有一个查询:

SELECT ROUND(SUM(COLUMN1*(COLUMN3-COLUMN2)),2) FROM .... WHERE ....

编辑:舍入到两位小数。

它返回此格式-例如:

  5.25
231.12
   .92

(预期输出:# ##0,00):

  5,25
231,12
  0,92

那么,我该如何正确屏蔽呢?

SELECT ROUND(
to_number(SUM(COLUMN1*(COLUMN3-COLUMN2)),'[FORMAT_MASK]', '[NLS_PARAM=]')
,0)

1 个答案:

答案 0 :(得分:2)

使用TO_CHAR在格式模型中正确指定小数字符D

默认情况下,或您的会话的NLS_NUMERIC_CHARACTERS,.(“ decimal_character group_separator ”)时,或您使用

alter session set NLS_NUMERIC_CHARACTERS = ',.'; 

select to_char(231.12, '99999D99')  from dual;

显示

231,12

您可以通过将NLS_NUMERIC_CHARACTERS分配为第三个参数来更改行为

select to_char(231.12, '99999D99','NLS_NUMERIC_CHARACTERS='',.''')  from dual;

231,12

Demo