Oracle
 sql >> база данни >  >> RDS >> Oracle

Преобразувайте числа в думи в индийската система за номериране

SQL Fiddle

Настройка на схема на Oracle 11g R2 :

CREATE TABLE numbers ( value ) ASSELECT 0 FROM DUAL UNION ALLSELECT 123456 FROM DUAL UNION ALLSELECT 12345678 FROM DUAL UNION ALLSELECT 1234567890123 FROM DUAL UNION ALLSELECT 123456789012345 FROM DUAL UNION ALLSELECT 900000000000000 FROM DUAL UNION ALLSELECT 700000001200000 FROM DUAL UNION ALLSELECT 543000000000000 FROM ДВОЙНО; 

Заявка 1 :

WITH rsqfc ( оригинал, стойност, суфикс, резултат, lvl, mxlvl ) AS ( SELECT стойност, TRUNC( стойност / 10000000 ), CAST( 'CRORE ' AS VARCHAR2(4000) ), CAST( RTRIM( CASE WHEN MOD( TRUNC(стойност / 100000), 100)> 0 THEN TO_CHAR(TO_DATE( MOD(TRUNC(стойност / 100000), 100), 'J'), 'JSP') || 'LAKH' END || CASE WHEN value =0 THEN 'ZERO' WHEN MOD( value, 100000 )> 0 THEN TO_CHAR( TO_DATE( MOD( value, 100000 ), 'J' ), 'JSP' ) || ' ' END ) AS VARCHAR2(4000) ), 1, CEIL( LENGTH( ABS(стойност)) / 7) FROM numbersUNION ALL SELECT оригинал, TRU NC(стойност / 10000000), 'CRORE' || суфикс, RTRIM( CASE WHEN MOD( TRUNC(стойност / 100000), 100)> 0 THEN TO_CHAR(TO_DATE( MOD(TRUNC(стойност / 100000), 100), 'J'), 'JSP') || 'LAKH' || суфикс END || CASE WHEN MOD(стойност, 100000)> 0 THEN TO_CHAR(TO_DATE(MOD(стойност, 100000), 'J'), 'JSP') || ' ' || суфикс END || резултат), lvl + 1, mxlvl FROM rsqfc WHERE lvl  

Резултати :

<предварителен код>| ОРИГИНАЛ | РЕЗУЛТАТ ||-----------------|---------------------------- -------------------------------------------------- -------------------------------------------------- ------------------|| 0 | НУЛА || 123456 | ЕДИН ЛАКХ ДВАДЕСЕТ И ТРИ ХИЛЯДИ ЧЕТИРИСТОТИН ПЕТДЕСЕТ И ШЕСТ || 12345678 | ЕДНА КРОР ДВАДЕСЕТ И ТРИ ЛАКХ ЧЕТИРИДЕСЕТ И ПЕТ ХИЛЯДИ ШЕСТОТИН СЕДЕМДЕСЕТ И ОСЕМ || 1234567890123 | ЕДИН ЛАКХ КРОР ДВАДЕСЕТ И ТРИ ХИЛЯДИ ЧЕТИРИСТОТИН ПЕТДЕСЕТ И ШЕСТ КРОР СЕДЕМДЕСЕТ И ОСЕМ ЛАКХ ДЕВЕТДЕСЕТ ХИЛЯДИ СТО ДВАДЕСЕТ И ТРИ || 123456789012345 | ЕДНА КРОР КРОР ДВАДЕСЕТ И ТРИ КРОР КРОР ЧЕТИРИДЕСЕТ И ПЕТ ХИЛЯДИ ШЕСТОТИН СЕДЕМДЕСЕТ И ОСЕМ КРОР ДЕВЕТДЕСЕТ ЛАКХ ДВАНАДЕСЕТ ХИЛЯДИ ТРИСТА ЧЕТИРИДЕСЕТ И ПЕТ || 90000000000000 | ДЕВЕТ КРОР КРОР || 700000001200000 | СЕДЕМ КРОР КРОР ДВАНАЕСТ ЛАХ || 543000000000000 | ПЕТ КРОР КРОР ЧЕТИРИДЕСЕТ И ТРИ ЛАКС КРОР |



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. cx_Oracle не разпознава местоположението на инсталацията на софтуера на Oracle за инсталиране на Linux

  2. Как да увеличите автоматично идентификатор в съставен първичен ключ в Hibernate?

  3. Изберете в PL-SQL грешки:INTO след избор

  4. Как да използвате Oracle Wallet

  5. Удивителен знак в SQL (Oracle)