Oracle
 sql >> डेटाबेस >  >> RDS >> Oracle

संख्या को शब्दों में कैसे बदलें - ORACLE

ल्यूक बल का प्रयोग करें;)

SqlFiddleDemo

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

सुराग Date है वर्तनी प्रारूप में।

संपादित करें:

negative numbers के लिए समर्थन जोड़ना :

SqlFiddleDemo

WITH cte AS
(
  SELECT 10 AS num      FROM dual
  UNION ALL SELECT -500 FROM dual
  UNION ALL SELECT 0    FROM dual
)
SELECT num AS old_value,
       decode( sign( num ), -1, 'NEGATIVE ', 0, 'ZERO', NULL ) ||
       decode( sign( abs(num) ), +1, to_char( to_date( abs(num),'J'),'JSP') ) || '/=' AS new_value
FROM cte

संपादित करें 2:##

फ्लोट के लिए सीमित समर्थन जोड़ना:

SqlFiddleDemo3

WITH cte AS
(
  SELECT 10 AS num       FROM dual
  UNION ALL SELECT -500  FROM dual
  UNION ALL SELECT 0     FROM dual
  UNION ALL SELECT 10.3  FROM dual
  UNION ALL SELECT -10.7 FROM dual
)
SELECT 
  num AS old_value,
  decode( sign( num ), -1, 'NEGATIVE ', 0, 'ZERO', NULL )
  || decode( sign( abs(num) ), +1, to_char( to_date( abs(TRUNC(num)),'J'),'JSP') )
  ||
  CASE
     WHEN INSTR (num, '.') > 0
     THEN  ' POINT ' || TO_CHAR (TO_DATE (TO_NUMBER (SUBSTR(num, INSTR (num, '.') + 1)),'J'),'JSP')
     ELSE NULL
  END AS new_value
FROM cte

संपादित करें 3:

<ब्लॉकक्वॉट>

10.3 के लिए आउटपुट टेन पॉइंट थ्री है लेकिन यह 10.3 के लिए टेन पॉइंट थर्टी और 10.03 के लिए टेन पॉइंट थ्री होना चाहिए। मैं इसे कैसे हासिल कर सकता हूं?

आप पहचान के लिए कितने अंक चाहते हैं, इसके आधार पर यह RPADed . हो सकता है 0 के साथ:

WITH cte AS
(
  SELECT 10.03 AS num FROM dual
  UNION ALL
  SELECT 10.30 FROM dual
  UNION ALL
  SELECT 10.33 FROM dual
)
SELECT 
  num AS old_value,
  decode( sign( num ), -1, 'NEGATIVE ', 0, 'ZERO', NULL )
  || decode( sign( abs(num) ), +1, to_char( to_date( abs(TRUNC(num)),'J'),'JSP') )
  ||
  CASE
     WHEN INSTR (num, '.') > 0
     THEN  ' POINT ' || TO_CHAR (TO_DATE (TO_NUMBER (RPAD(SUBSTR(num, INSTR (num, '.') + 1)
                                                     ,2,'0')
                                                     ),'J'),'JSP')
     ELSE NULL
  END AS new_value
FROM cte;

db<>फिडल डेमो

आउटपुट:

+-------------+------------------------+
|  OLD_VALUE  |       NEW_VALUE        |
+-------------+------------------------+
|      10.03  | TEN POINT THREE        |
|       10.3  | TEN POINT THIRTY       |
|      10.33  | TEN POINT THIRTY-THREE |
+-------------+------------------------+


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. क्या सत्र को मारे बिना ऑरैकल में एक प्रश्न को मारना संभव है?

  2. Oracle में किसी तालिका को उपनाम देने के लिए 'as' कीवर्ड का उपयोग कैसे करें?

  3. Oracle EBS में पैचिंग समय को कम करने के लिए डिस्ट्रीब्यूटेड AD का उपयोग कैसे करें

  4. Oracle क्लाउड इंफ्रास्ट्रक्चर पर कंपार्टमेंट के बारे में जानने योग्य 7 बातें

  5. क्रिसमस जल्दी आता है (ओरेकल 12.2)