SQL सर्वर हमें प्रासंगिक स्थान पर अल्पविराम लगाकर संख्याओं को प्रारूपित करने का एक त्वरित और आसान तरीका प्रदान करता है। उदाहरण के लिए, 1234.56 1,234.56 . बन सकते हैं . या यह 1.234,56 . बन सकता है , यदि वह वह स्थान है जिसका आप उपयोग कर रहे हैं।
उदाहरण
हम FORMAT()
. का उपयोग कर सकते हैं अल्पविराम के साथ संख्याओं को प्रारूपित करने का कार्य। जब हम इस फ़ंक्शन का उपयोग करते हैं, तो हम संख्या और एक प्रारूप स्ट्रिंग पास करते हैं। प्रारूप स्ट्रिंग निर्धारित करती है कि वापस आने पर संख्या को कैसे स्वरूपित किया जाएगा।
FORMAT()
फ़ंक्शन हमारे द्वारा प्रदान किए गए मानों के आधार पर संख्या का एक स्वरूपित स्ट्रिंग प्रतिनिधित्व देता है।
प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है:
SELECT
FORMAT(123456.789, 'N') AS "Number",
FORMAT(123456.789, 'P') AS "Percent",
FORMAT(123456.789, 'C') AS "Currency";
परिणाम:
+------------+----------------+-------------+ | Number | Percent | Currency | |------------+----------------+-------------| | 123,456.79 | 12,345,678.90% | $123,456.79 | +------------+----------------+-------------+
यह उदाहरण तीन मानक संख्यात्मक प्रारूप स्ट्रिंग्स को प्रदर्शित करता है:
- अगर हमें सिर्फ फ़ॉर्मेट किया गया नंबर चाहिए, तो हम
N
. का इस्तेमाल कर सकते हैं - यदि हम इसे प्रतिशत के रूप में स्वरूपित करना चाहते हैं, तो हम
P
. का उपयोग कर सकते हैं - मुद्रा के लिए, हम
C
. का उपयोग कर सकते हैं ।
SQL सर्वर आपके वर्तमान लोकेल (वर्तमान सत्र की भाषा के आधार पर) को जानने के लिए पर्याप्त स्मार्ट है, और उस लोकेल के सम्मेलनों के अनुसार परिणाम स्वरूपित करता है। यह महत्वपूर्ण है, क्योंकि हर कोई ऐसे देश में नहीं रहता है जो हजारों विभाजक के रूप में अल्पविराम का उपयोग करता है, और दशमलव विभाजक के रूप में पूर्ण विराम का उपयोग करता है।
इसके अलावा, FORMAT()
फ़ंक्शन तीसरे वैकल्पिक "संस्कृति" तर्क को स्वीकार करता है, जो आपको स्थान को स्पष्ट रूप से निर्दिष्ट करने में सक्षम बनाता है।
मेरे कहने का एक उदाहरण यहां दिया गया है:
SELECT
FORMAT(123456.789, 'N', 'de-de') AS "Number",
FORMAT(123456.789, 'P', 'de-de') AS "Percent",
FORMAT(123456.789, 'C', 'de-de') AS "Currency";
परिणाम:
+------------+-----------------+--------------+ | Number | Percent | Currency | |------------+-----------------+--------------| | 123.456,79 | 12.345.678,90 % | 123.456,79 € | +------------+-----------------+--------------+
इस मामले में मैं निर्दिष्ट करता हूं de-de
संस्कृति के रूप में, जिसका अर्थ है कि परिणाम जर्मन सम्मेलनों के अनुसार स्वरूपित किए जाएंगे। हम देख सकते हैं कि समूह विभाजक के रूप में पूर्ण विराम का उपयोग किया जाता है, और दशमलव के लिए अल्पविराम का उपयोग किया जाता है विभाजक।
यदि तीसरा तर्क छोड़ दिया जाता है, तो वर्तमान सत्र की भाषा का उपयोग किया जाता है।
कस्टम प्रारूप स्ट्रिंग्स
अपने स्वयं के कस्टम प्रारूप स्ट्रिंग बनाने के लिए कस्टम प्रारूप विनिर्देशक का उपयोग करना भी संभव है। उदाहरण के लिए, #
कैरेक्टर एक डिजिट प्लेसहोल्डर है, 0
एक शून्य प्लेसहोल्डर है, अल्पविराम (,
) समूह विभाजक के लिए एक प्लेसहोल्डर है, और पूर्ण विराम (.
) दशमलव सेपरेटर के लिए एक प्लेसहोल्डर है।
लोकेल का उपयोग किए बिना यह सच है - SQL सर्वर वर्तमान लोकेल के आधार पर समूह और दशमलव विभाजकों के लिए उपयोग किए जाने वाले वर्णों का पता लगाएगा।
उदाहरण:
SELECT
FORMAT(123456.789, '###,###,###.##', 'en-us') AS "US English",
FORMAT(123456.789, '###,###,###.##', 'de-de') AS "German";
परिणाम:
+--------------+------------+ | US English | German | |--------------+------------| | 123,456.79 | 123.456,79 | +--------------+------------+
दोनों ही मामलों में, मैंने एक ही प्रारूप स्ट्रिंग का उपयोग किया, फिर भी SQL सर्वर ने उस समूह और दशमलव विभाजकों को वापस कर दिया जो निर्दिष्ट स्थान पर लागू थे (जो तीसरे "संस्कृति" तर्क के साथ निर्दिष्ट किया गया था)।
उपरोक्त उदाहरण में, प्रारूप स्ट्रिंग में वास्तविक संख्या से अधिक अंक शामिल हैं। भले ही, SQL सर्वर ने किसी भी अग्रणी शून्य को वापस नहीं करना चुना। ऐसा इसलिए है क्योंकि हमने #
. का उपयोग किया है प्रारूप विनिर्देशक।
यदि हम चाहते हैं कि SQL सर्वर अग्रणी शून्य लौटाए, तो हम 0
. का उपयोग कर सकते हैं प्रारूप विनिर्देशक:
SELECT
FORMAT(123456.789, '000,000,000.00', 'en-us') AS "US English",
FORMAT(123456.789, '000,000,000.00', 'de-de') AS "German";
परिणाम:
+----------------+----------------+ | US English | German | |----------------+----------------| | 000,123,456.79 | 000.123.456,79 | +----------------+----------------+