MySQL में संख्यात्मक कॉलम का योग निकालकर उसे फॉर्मेटेड स्ट्रिंग (दशमलव स्थान, हजार सेपरेटर) के रूप में प्रदर्शित करने के लिए, SUM() के चारों ओर FORMAT() फंक्शन लपेटें। यह वित्तीय रिपोर्ट, इनवॉइस, और डैशबोर्ड के लिए आदर्श है।
उदाहरण: Amount कॉलम का योग और फॉर्मेट
डेमो टेबल बनाएं:
mysql> CREATE TABLE DemoTable1950 (Amount FLOAT);
डेटा इन्सर्ट करें:
mysql> INSERT INTO DemoTable1950 VALUES (45.60), (101.78), (75.90), (89.45);
FORMAT(SUM(), 2) के साथ क्वेरी:
mysql> SELECT FORMAT(SUM(Amount), 2) AS TotalSum FROM DemoTable1950;
आउटपुट:
+----------+ | TotalSum | +----------+ | 312.73 | +----------+
FORMAT() फंक्शन
FORMAT(number, decimal_places [, locale])
number: फॉर्मेट करने वाली संख्याdecimal_places: दशमलव स्थानों की संख्या (गोलाई)locale: वैकल्पिक लोकेल (जैसे 'de_DE' जर्मन फॉर्मेट के लिए)- लौटाता है: स्ट्रिंग (जैसे '1,234.56')
गणना विवरण
कच्चा योग: 45.60 + 101.78 + 75.90 + 89.45 = 312.73
FORMAT(312.73, 2) → '312.73' (दो दशमलव स्थान)
अधिक फॉर्मेटिंग उदाहरण
-- 0 दशमलव स्थान
SELECT FORMAT(SUM(Amount), 0) FROM DemoTable1950; -- '313'
-- भारतीय संख्या प्रणाली (लाख/करोड़) - MySQL 8.0+
SELECT FORMAT(SUM(Amount), 2, 'en_IN') FROM DemoTable1950;
-- जर्मन फॉर्मेट (कॉमा दशमलव, डॉट हजार)
SELECT FORMAT(SUM(Amount), 2, 'de_DE') FROM DemoTable1950; -- '312,73'
-- कॉन्कैटेनेशन के साथ
SELECT CONCAT('₹', FORMAT(SUM(Amount), 2)) AS formatted_total FROM DemoTable1950;
SUM() + FORMAT() क्रम महत्वपूर्ण
-- सही: योग फिर फॉर्मेट FORMAT(SUM(Amount), 2) -- गलत: फॉर्मेट फिर योग (स्ट्रिंग जोड़ = एरर/गलत) SUM(FORMAT(Amount, 2))
ROUND() vs FORMAT()
| फंक्शन | वापसी प्रकार | उपयोग |
|---|---|---|
| ROUND(n, d) | संख्या | गणना, आगे प्रोसेसिंग |
| FORMAT(n, d) | स्ट्रिंग | डिस्प्ले, रिपोर्ट, एक्सपोर्ट |
सावधानी
FORMATस्ट्रिंग लौटाता है; आगे गणितीय ऑपरेशन के लिएCAST(... AS DECIMAL)आवश्यक- बहुत बड़ी संख्याओं के लिए वैज्ञानिक संकेतन उपयोग कर सकता है
- लोकेल-निर्भर व्यवहार; स्पष्ट लोकेल निर्दिष्ट करें
रिपोर्टिंग क्वेरी में FORMAT(SUM(...), 2) पैटर्न वित्तीय डेटा प्रस्तुति के लिए मानक है।