Teradata SQL格式化十进制字段

Teradata SQL格式化十进制字段,sql,teradata,Sql,Teradata,我在teradata中有一个十进制字段(19,4),我需要它的特定格式: 组分隔符作为点 小数字符作为逗号 只有两个十进制数字 数字的整数部分必须按3分组 我已经尝试了格式化、添加字符和强制转换函数。我还在这些函数中尝试了NLS\u NUMERIC\u CHARACTERS参数。我想我在TERADATA SQL中缺少一些基本原理,我将感谢您的帮助 想法很简单: SELECT some_decimal_field_in_proper_format_described_above FROM so

我在teradata中有一个十进制字段(19,4),我需要它的特定格式:

  • 组分隔符作为点
  • 小数字符作为逗号
  • 只有两个十进制数字
  • 数字的整数部分必须按3分组
我已经尝试了格式化、添加字符和强制转换函数。我还在这些函数中尝试了NLS\u NUMERIC\u CHARACTERS参数。我想我在TERADATA SQL中缺少一些基本原理,我将感谢您的帮助

想法很简单:

SELECT some_decimal_field_in_proper_format_described_above
FROM some_table

对于强制转换/格式,组分隔符和小数分隔符由系统的SDF“区域设置”确定。但是,如果您想要一些不同的内容,您可以在格式字符串中使用D表示十进制,G表示组分隔符,并使用数字字符的自定义值:

TO_CHAR(x,'S999G999G999G999G990D99','NLS_NUMERIC_CHARACTERS = '',.''')

请提供示例数据和所需结果。只需再问一个问题:您知道此解决方案对查询性能是否是一个大问题吗?不是一个大问题。对于较大的答案集,可能会看到CPU消耗略有增加。