【问题标题】:How to Convert number to word using SQL Query?如何使用 SQL 查询将数字转换为单词?
【发布时间】:2021-02-19 12:32:17
【问题描述】:

我需要使用 SQL 查询将金额(数字)转换为单词的帮助。

示例:卢比。 287.06 -> 287 和 06/100 卢比

请求您建议我如何实现它。

问候,

阿肖克

【问题讨论】:

  • 你应该用你真正使用的数据库来标记你的问题。鉴于Oracle标签更加具体和丰富,我删除了“mysql”。

标签: sql oracle oracle11g


【解决方案1】:

这不是我的解决方案,我在这里建立了这个功能:

https://asktom.oracle.com/pls/apex/f?p=100:11:0::::P11_QUESTION_ID:1407603857650

这里还有一篇文章: https://www.foxinfotech.in/2019/04/oracle-convert-currency-amount-in-words-using-pl-sql.html

这几乎正是您所需要的。 最后在我的演示中测试了这两种解决方案...

create or replace
 function spell_number( p_number in number )
 return varchar2
 as
 type myArray is table of varchar2(255);
 l_str myArray := myArray( '',
 ' thousand ', ' million ',
 ' billion ', ' trillion ',
 ' quadrillion ', ' quintillion ',
 ' sextillion ', ' septillion ',
 ' octillion ', ' nonillion ',
 ' decillion ', ' undecillion ',
 ' duodecillion ' );

 l_num varchar2(50) default trunc( p_number );
 l_return varchar2(4000);
 begin
 for i in 1 .. l_str.count
 loop
 exit when l_num is null;

 if ( substr(l_num, length(l_num)-2, 3) <> 0 )
 then
 l_return := to_char(
 to_date(
 substr(l_num, length(l_num)-2, 3),
 'J' ),
 'Jsp' ) || l_str(i) || l_return;
 end if;
 l_num := substr( l_num, 1, length(l_num)-3 );
 end loop;

 return l_return;
end;
/

可悲的是,对于您的示例,由于.,它不会完成这项工作,但我相信您可以结合一些灵魂,如果它有小数部分,您可以拆分数字,然后为数字和其他一些调用此函数对于小数部分...

DEMO

【讨论】:

  • 我认为它是-1,因为我已经分享了别人的解决方案..
猜你喜欢
  • 2013-05-02
  • 2017-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-19
相关资源
最近更新 更多