Преобразовать сумму в слова в SQL - PullRequest
0 голосов
/ 22 апреля 2020

Я хочу преобразовать сумму в рупиях в слова в SQL

Ответы [ 2 ]

0 голосов
/ 22 апреля 2020

Обычный способ - преобразовать число в юлианскую дату, а затем преобразовать ее обратно в строку со словами. Увы, это будет работать только на английском языке sh и не будет использовать индийские подразделения, такие как Lakh и Crore.

with
  inputs as (select '₹1,53,050' as price_in_rupees from dual)
select price_in_rupees,
       initcap(to_char(to_date(to_number(price_in_rupees, 'L99,99,99,999',
               'nls_currency=₹'), 'J'), 'JSP')) || ' Indian Rupees'
       as price_spelled_out
from   inputs
;

PRICE_IN_RUPEES PRICE_SPELLED_OUT
--------------- ----------------------------------------------------
₹1,53,050       One Hundred Fifty-Three Thousand Fifty Indian Rupees
0 голосов
/ 22 апреля 2020

Вы можете использовать ниже, но есть улов, максимум, который он может показать, это сто миллионов

  create or replace function spell_number(p_number number) return varchar2 is
  l_str varchar2(200);
  begin
  l_str := to_char(to_timestamp(lpad(nvl(trunc(p_number), 0) , 9, '0'), 'FF9'), 'FFSP');
 return l_str;
 end;

with data as (select 99999998  currency from dual)
SELECT spell_number(currency)
from data
...