数字掩码 &nls_参数 [英] Number masking & nls_parameter

查看:31
本文介绍了数字掩码 &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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆