Sql 将小数和逗号格式化为检索到的数字
我的表格中有一列显示了金额。金额从一列到另一列不等,超过15位 设置数字格式以显示逗号和小数点的最佳方式是什么 我的问题是Sql 将小数和逗号格式化为检索到的数字,sql,oracle,Sql,Oracle,我的表格中有一列显示了金额。金额从一列到另一列不等,超过15位 设置数字格式以显示逗号和小数点的最佳方式是什么 我的问题是 select amount from ccamounts 我如何设置数字格式 205511892078 显示为 205,511,892,078 如果有一个基数点,它也会出现。我会在UI/报告工具/表示层而不是Oracle中格式化数字 但如果必须在oracle中格式化,请尝试: SELECT CASE WHEN INSTR( TO_CHAR(205511892
select amount from ccamounts
我如何设置数字格式
205511892078
显示为
205,511,892,078
如果有一个基数点,它也会出现。我会在UI/报告工具/表示层而不是Oracle中格式化数字 但如果必须在oracle中格式化,请尝试:
SELECT
CASE WHEN INSTR( TO_CHAR(205511892078),'.')>0 THEN
TO_CHAR(205511892078 ,'999,999,999,999.99')
ELSE
TO_CHAR(205511892078 ,'999,999,999,999')
END
FROM DUAL
这将以字符串形式返回数字。我相信您可以使用TO_CHAR来执行此操作,问题是这只是SQL中的一个格式化函数。它要求您的号码始终采用相同的格式 以上面的例子来说,你可以做到 TO_CHAR('20551189078','9999999999') 这将按照您指定的格式设置数字的格式,并带有小数点,也可以这样做,但需要指定小数点: TO_CHAR('2055118907842','99999999999') 这将为您提供20551892078.42 我认为,如果字段长度发生变化,sql将忽略任何不符合格式字符串的内容(它是一个掩码)。也许你想考虑在这种情况下格式化你可能使用的前端的数量?< /P>
declare @d3 decimal (10, 2)
set @d3 = 12309809.5494
SELECT convert(varchar(15),cast(CAST(ROUND(@d3,2,1) AS DECIMAL (30,2)) as money),1) as Value
SELECT CAST(ROUND(convert(varchar(30), cast(@d3 as money),2),2,1) AS DECIMAL (30,2)) as Value
输出: 12309809.55 12309809.55
这个问题被标记为Oracle,您编写的内容在Oracle上不起作用。看起来像是SQL女士。这对于格式或类型转换问题尤其没有帮助,因为它们太不一样了。