【问题标题】:how to convert the numeric into indian currency format in oracle sql如何在oracle sql中将数字转换为印度货币格式
【发布时间】:2022-01-01 15:28:01
【问题描述】:

假设我有列 money 说它的值是 eg:880856.00 我需要一个查询来格式化这个 money 列像这样 8,80,856.00

【问题讨论】:

标签: sql oracle plsql


【解决方案1】:

您可以使用 to_char 来格式化字符。

所以,对于您指定的格式

to_char(money, '9,99,999.99' );

将返回 8,80,856.00

example

需要注意的是,这只是第一个答案中提供的字符串的长度,可以提供更长的第二个参数以根据需要正确格式化数字。

所以:

to_char(11111111111111.11, '9,99,999,99,9,99,999.99')

将返回 1,11,111,11,1,11,111.11

extra length example

这也会自动调整第一个参数中提供的位数,例如:

to_char(5856.00, '9,99,999.99');

将返回 5,856.00

example 2

来自 Oracle 文档: https://www.oradev.com/oracle_number_format.jsp

这是有关该主题的旧 stackoverflow 帖子:oracle sql query to format number by comma

【讨论】:

  • 如果我不知道我的专栏的长度怎么办
  • @Shah 答案现已更新
  • 虽然这最终会给出正确的答案,但它只适用于高达 999999.99 的数字。看到我们谈论的是印度货币(卢比),即 13.423,27 美元。数字很​​容易用完。我建议@Shah 在显示的应用程序中处理这个问题,因为可能会出现另一个问题,那就是您将无法使用任何分析函数,而无需创建另一列来获取数字,但您必须转换它们最终无论哪种方式。
  • @Tilin 您可以根据需要添加任意数量的逗号/位置,只需增加第二个参数的长度并根据需要进行格式化。尽管不能用这些数字运行分析是公平的,因为它更多地只是为了可视化;我不确定如何以这种格式将这些数据存储在数据库中,然后以相同的格式执行分析。
  • 这就是为什么你不应该输出,也不应该以这种格式存储数字。它们应该以数字类型返回,然后在所述应用程序中格式化。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多