कुछ DBMS में LPAD()
होता है और RPAD()
फ़ंक्शन जिसका उपयोग अग्रणी और अनुगामी शून्य के साथ संख्याओं को पैड करने के लिए किया जा सकता है।
SQL सर्वर में ऐसा कोई फ़ंक्शन नहीं है। लेकिन यह हमें अग्रणी/पिछला शून्य के साथ संख्याओं को पैड करने में सक्षम होने से नहीं रोकता है।
गैर-पूर्णांक
सबसे पहले, आइए गैर-पूर्णांकों को देखें:
SELECT
FORMAT(7, '000.00') AS "1",
FORMAT(17, '000.00') AS "2",
FORMAT(73.5, '000.00') AS "3";
परिणाम:
+--------+--------+--------+ | 1 | 2 | 3 | |--------+--------+--------| | 007.00 | 017.00 | 073.50 | +--------+--------+--------+
यहां, हम FORMAT()
. का उपयोग करते हैं संख्या को प्रारूपित करने के लिए कार्य करता है। पहला तर्क संख्या है, और दूसरा तर्क प्रारूप स्ट्रिंग है। फ़ंक्शन अपने परिणाम को स्वरूपित स्ट्रिंग के रूप में आउटपुट करता है।
उपरोक्त उदाहरण में, प्रारूप स्ट्रिंग में कस्टम संख्यात्मक प्रारूप विनिर्देशक होते हैं, जिसके परिणामस्वरूप मूल संख्या में शून्य जोड़ दिया जाता है, जहां मूल संख्या में कोई अंक नहीं होता है। हम प्रारूप स्ट्रिंग में जितने चाहें उतने शून्य का उपयोग कर सकते हैं।
SELECT
FORMAT(7, '00000.0000') AS "1",
FORMAT(17, '00000.0000') AS "2",
FORMAT(73.5, '00000.0000') AS "3";
परिणाम:
+------------+------------+------------+ | 1 | 2 | 3 | |------------+------------+------------| | 00007.0000 | 00017.0000 | 00073.5000 | +------------+------------+------------+
पूर्णांक
अगर मूल संख्या एक पूर्णांक है, तो हमें थोड़ा और काम करने की ज़रूरत है:
SELECT
REPLACE(FORMAT(7, '00000.0000', 'en-US'), '.', '') AS "1",
REPLACE(FORMAT(17, '00000.0000', 'en-US'), '.', '') AS "2",
REPLACE(FORMAT(73.5, '00000.0000', 'en-US'), '.', '') AS "3";
परिणाम:
+-----------+-----------+-----------+ | 1 | 2 | 3 | |-----------+-----------+-----------| | 000070000 | 000170000 | 000735000 | +-----------+-----------+-----------+
यहां, मैंने REPLACE()
. का उपयोग किया है संख्या को स्वरूपित करने के बाद दशमलव बिंदु को हटाने के लिए कार्य करता है।
मैंने स्पष्ट रूप से en-US
. का उपयोग किया है (वैकल्पिक) तीसरे तर्क के रूप में यह सुनिश्चित करने के लिए कि दशमलव विभाजक एक अवधि/पूर्ण विराम है, न कि कोई अन्य वर्ण, जैसे अल्पविराम। कुछ स्थान दशमलव विभाजक के रूप में अल्पविराम का उपयोग करते हैं। यदि हम फ़ंक्शन के भीतर से स्थान को स्पष्ट रूप से निर्दिष्ट नहीं करते हैं, तो वर्तमान सत्र के स्थान का उपयोग किया जाता है। फ़ंक्शन के भीतर से लोकेल को स्पष्ट रूप से निर्दिष्ट करना सुनिश्चित करता है कि वर्तमान सत्र के लोकेल का उपयोग नहीं किया गया है, और इसलिए, हमारे प्रतिस्थापन ऑपरेशन में हस्तक्षेप करने में असमर्थ है।
Azure SQL Edge
Azure SQL Edge SQL सर्वर डेटाबेस इंजन के सीमित कार्यान्वयन पर बनाया गया है, और इसलिए यह अधिकांश T-SQL फ़ंक्शंस का समर्थन करता है जिनका उपयोग हम SQL सर्वर के साथ कर सकते हैं। हालाँकि, लेखन के समय, SQL Edge T-SQL का समर्थन नहीं करता है FORMAT()
समारोह।
वैकल्पिक विधि (जो SQL सर्वर में भी काम करता है) के लिए Azure SQL Edge में अग्रणी और अनुगामी शून्य कैसे जोड़ें देखें।