sql - Number masking & nls_parameter
问题描述
So i have a query:
SELECT ROUND(SUM(COLUMN1*(COLUMN3-COLUMN2)),2) FROM .... WHERE ....
EDIT: ROUND to 2 decimals.
It returns this format - example:
5.25
231.12
.92
(expected output: # ##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
当您的会话默认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
推荐阅读
- python - 多个条形图上有带刺的多个 Y 轴
- javascript - 正则表达式 - 匹配分隔符之间的每个逗号 NOT
- list - 自动为字典赋值
- ios - Safari - iOS 13.5.1 - 推荐人政策问题
- swift - Swift 应用程序在尝试获取联系人时崩溃
- javascript - discord.js - 将 GuildChannel 转换或转换为 TextChannel
- c# - 遍历对象中的数组
- reactjs - useEffect() TypeError: e is not a function
- uwp-xaml - Blend for Visual Studio 2019 在资产窗口中禁用 PATH 和其他形状
- javascript - 通过 JS 添加到当前背景图片?