sql >> データベース >  >> RDS >> Oracle

インドの数体系で数字を単語に変換する

    SQL フィドル

    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値 =0 THEN 'ZERO' WHEN MOD( 値, 100000 )> 0 THEN TO_CHAR( TO_DATE( MOD( 値, 100000 ), 'J' ), 'JSP' ) || ' ' END ) AS VARCHAR2(4000) ), 1, CEIL( LENGTH( ABS( 値 ) ) / 7 ) FROM 数字UNION 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 | || 1 ラック 2 万 3 千 4 万 56 || 12345678 | 1 億 23 万ルピー 4 万 5000 6 78 || 1234567890123 | 1 億 23,000 万 456 億 78 万ルピー 9 万 123 億 || 123456789012345 | 1 億 2,300 万ルピー 4,500 万 6,780 億 9,000 万 1,300 億 4,500 万900000000000000 | || 9 億ルピー || 700000001200000 | || 7 億ルピー 12 億ルピー || 543000000000000 | 5 億億ルピー 43 億ルピー |


    1. 大きな.sqlファイルをMySQLにインポートします

    2. C#でSMOを使用してSQL Serverの利用可能なインスタンスを一覧表示するにはどうすればよいですか?

    3. Dataadapterを使用した更新中にDBConcurrency例外が発生しました

    4. PostgreSQLでデータを挿入および削除する方法