Sql 格式化十进制数据类型以显示货币

Sql 格式化十进制数据类型以显示货币,sql,teradata,Sql,Teradata,我的表格定义: create table decimal_salary ( salary decimal(10,2) ) 现在,我尝试使用以下格式的工资 我的薪水是10万英镑 我试图以下面的方式获得格式化输出,我得到的只是-100000.00 SELECT salary * (-1) (FORMAT '-Z(I)BN') from decimal_salary 该格式不应该附加货币吗?您是否尝试过以下方法: SELECT CAST(CAST(SESSION AS FORMAT '$(8).9

我的表格定义:

create table decimal_salary
(
salary decimal(10,2)
)
现在,我尝试使用以下格式的工资

我的薪水是10万英镑

我试图以下面的方式获得格式化输出,我得到的只是-100000.00

SELECT salary * (-1) (FORMAT '-Z(I)BN') from decimal_salary

该格式不应该附加货币吗?

您是否尝试过以下方法:

SELECT CAST(CAST(SESSION AS FORMAT '$(8).9(2)') AS CHAR(15)) AS CurrencyFormatted;

仅当存在从/到字符串的强制转换时,才应用格式

仅对于BTEQ报告,它是自动完成的,对于需要向[VAR]字符添加强制转换的任何其他内容,大多数数据类型也可以使用简单的修剪:

SELECT TRIM(salary * (-1) (FORMAT '-Z(I)BN'))

顺便说一句,你为什么不干脆用-salary而不是salary*(-

就个人而言,我永远不会依赖系统提供的货币符号。通常情况下,这是基于当前交易时段,当你交易多种货币时,你就完蛋了。如果没有在里面定义某种“货币”类型,至少应该明确列出所使用的货币。否则,你在做无单位转换,我们都知道这会导致什么。。。但是,这显然需要您自己添加货币符号。