sql >> Database teknologi >  >> RDS >> Oracle

Sådan konverteres tal til ord - ORACLE

Brug kraften Luke;)

SqlFiddleDemo

SELECT UPPER(TO_CHAR(TO_DATE(500,'J'),'Jsp')) || '/=' AS new_valueFROM dual;  

Ledetråden er Dato i stavet format.

EDIT:

Tilføjelse af understøttelse af negative tal :

SqlFiddleDemo

MED cte AS( VÆLG 10 SOM NUM FRA dual UNION ALLE VÆLG -500 FRA dual UNION ALLE VÆLG 0 FRA dual)VÆLG num AS old_value, decode( tegn( num ), -1, 'NEGATIVE ', 0 , 'NUL', NULL ) || decode( sign( abs(num) ), +1, to_char( to_date( abs(num),'J'),'JSP') ) || '/=' AS new_valueFROM cte

EDIT 2:##

Tilføjelse af begrænset understøttelse af float:

SqlFiddleDemo3

MED cte AS( VÆLG 10 SOM NUM FRA dual UNION ALLE VÆLG -500 FRA dual UNION ALLE VÆLG 0 FRA dual UNION ALLE VÆLG 10.3 FRA dual UNION ALLE VÆLG -10.7 FRA dual)VÆLG num AS old_value, decode( tegn( tal ), -1, 'NEGATIV', 0, 'NUL', NULL ) || decode( sign( abs(num) ), +1, to_char( to_date( abs(TRUNC(num)),'J'),'JSP') ) || TILFÆLDE, NÅR INSTR (num, '.')> 0 SÅ PUNKT ' || TO_CHAR (TO_DATE (TO_NUMBER (SUBSTR(tal, INSTR (tal, '.') + 1)),'J'),'JSP') ELSE NULL END AS new_valueFROM cte

EDIT 3:

for 10.3 output er TEN POINT THREE, men det skal være TEN POINT TTRETI for 10.3 og TEN POINT THREE for 10.03. Hvordan kunne jeg opnå dette?

Afhængigt af hvor mange cifre du ønsker til identitet, kan den være RPADed med 0:

MED cte AS( VÆLG 10.03 SOM NUM FRA dual UNION ALLE VÆLG 10.30 FRA dual UNION ALLE VÆLG 10.33 FRA dual) SELECT num AS old_value, decode( tegn( num ), -1, 'NEGATIVE ', 0, 'NUL', NULL ) || decode( sign( abs(num) ), +1, to_char( to_date( abs(TRUNC(num)),'J'),'JSP') ) || TILFÆLDE, NÅR INSTR (num, '.')> 0 SÅ PUNKT ' || TO_CHAR (TO_DATE (TO_NUMBER (RPAD(SUBSTR(tal, INSTR (tal, '.') + 1) ,2,'0') ),'J'),'JSP') ELSE NULL END AS new_valueFROM cte;

db<>fiddle-demo

Output:

+-------------+------------------------+| OLD_VALUE | NEW_VALUE |+-------------+------------------------+| 10.03 | TI POINT TRE || 10,3 | TI POINT TREDIVE || 10.33 | TI POINT 33 |+------------------+------------------------+

  1. Count(*) vs Count(1) - SQL Server

  2. Umuligt at installere PG gem på min mac med Mavericks

  3. En guide til Pgpool til PostgreSQL:Anden del

  4. 5 kraftfulde funktioner i Microsoft Access