यदि आप Oracle डेटाबेस या MySQL का उपयोग करते हैं, तो आप भाग्यशाली हैं कि आपके पास LPAD()
. है और RPAD()
फ़ंक्शन, जो आपको किसी दिए गए वर्ण (या वर्ण) के साथ एक स्ट्रिंग को उसके बाएँ और/या दाएँ पैड करने की अनुमति देता है।
हालाँकि, SQL सर्वर (या अधिक सटीक, T-SQL), इन कार्यों को शामिल नहीं करता है। इसलिए यदि आपको कुछ बाएं पैडिंग की आवश्यकता है, तो आपको सुधार करना होगा।
यह आलेख SQL सर्वर में अग्रणी शून्य के साथ किसी संख्या को पैडिंग करने के लिए चार विकल्प प्रस्तुत करता है। तो आप टर्न 7
. जैसी चीज़ें कर सकते हैं 007
. में . इनमें से तीन विकल्प स्ट्रिंग पर काम करते हैं, इसलिए आप टेक्स्ट डेटा पर पैडिंग भी लागू कर सकते हैं।
विधि 1 - FORMAT() फ़ंक्शन का उपयोग करें
यदि आपको किसी संख्या पर अग्रणी शून्य लागू करने की आवश्यकता है, तो यह विकल्प आपके लिए आवश्यक होना चाहिए। यह विकल्प FORMAT()
. का उपयोग करता है समारोह। यह फ़ंक्शन हमारे निर्दिष्ट प्रारूप में संख्या को एक स्ट्रिंग के रूप में लौटाता है:
SELECT FORMAT(7, '000');
परिणाम:
007
इस मामले में, हम 0
. का उपयोग करते हैं जहां लागू हो वहां अग्रणी शून्य के साथ संख्या को प्रारूपित करने के लिए प्रारूप विनिर्देशक। यह कई कस्टम प्रारूप विनिर्देशों में से एक है। कस्टम प्रारूप विनिर्देशक हमें इस बारे में बहुत सटीक होने की अनुमति देते हैं कि हमारा नंबर कैसे प्रारूपित होता है।
ध्यान दें कि FORMAT()
फ़ंक्शन केवल संख्याओं और डेटाटाइम मानों के लिए है। तो अगर आपको वास्तविक स्ट्रिंग पर पैडिंग लागू करने की आवश्यकता है, तो पढ़ें।
विधि 2 - RIGHT() फ़ंक्शन का उपयोग करें
दूसरी विधि RIGHT()
. का उपयोग करती है कुछ प्रमुख शून्य जोड़ने के बाद, स्ट्रिंग के केवल सबसे दाहिने हिस्से को वापस करने के लिए कार्य करता है।
हालांकि मैं यहां "संख्या" के लिए अग्रणी शून्य लागू कर रहा हूं, यह वास्तव में एक संख्या का एक स्ट्रिंग प्रतिनिधित्व है। इसलिए यदि आपको किसी संख्या के बजाय स्ट्रिंग में पैडिंग लगाने की आवश्यकता है, तो यह विधि काम करेगी।
SELECT RIGHT('000' + '1234', 7);
परिणाम:
0001234
7
निर्दिष्ट करता है कि अंतिम परिणाम कितने वर्णों का होना चाहिए (शून्य जोड़े जाने के बाद)।
लंबाई कम करना
तो अगर हम उस संख्या को कम करते हैं, तो यह अग्रणी शून्यों की संख्या कम कर देगा:
SELECT RIGHT('000' + '1234', 6);
परिणाम:
001234
लंबाई बढ़ाना
लेकिन अगर हम संख्या बढ़ाते हैं, तो हमें यह सुनिश्चित करना होगा कि हमने आवश्यक लंबाई बनाने के लिए पर्याप्त शून्य निर्दिष्ट किए हैं:
SELECT RIGHT('000000' + '1234', 10);
परिणाम:
0000001234
अन्यथा हम इसके साथ समाप्त हो जाते हैं:
SELECT RIGHT('000' + '1234', 10);
परिणाम:
0001234
संख्या को छोटा करना
यह भी ध्यान दें कि यदि आप परिणामी स्ट्रिंग लंबाई के लिए पर्याप्त वर्ण निर्दिष्ट नहीं करते हैं, तो संख्या काट दी जाएगी, और आपको केवल संख्या का सबसे दाहिना भाग मिलेगा:
SELECT RIGHT('000' + '1234', 2);
परिणाम:
34
इसलिए इस मामले में, शुरुआती संख्या को छोटा कर दिया गया और आगे के शून्य को नज़रअंदाज कर दिया गया।
यह एक ऐसा परिदृश्य है जहां परिणाम MySQL और Oracle के LPAD()
. से भिन्न होता है समारोह। उस फ़ंक्शन ने अंतिम 2 अंकों के बजाय पहले 2 (बिना पैड वाले) अंक बनाए होंगे। इस तरह:
SELECT LPAD(1234, 2, 0);
परिणाम:
12
यदि आपको SQL सर्वर समाधान की आवश्यकता है जो LPAD()
. जैसा व्यवहार करेगा ऐसे मामलों में, यह प्रयास करें:
SELECT RIGHT(REPLICATE('0', 3) + LEFT('1234', 2), 2);
परिणाम:
12
हालांकि, ध्यान रखें कि आपको केवल LEFT()
. का उपयोग करके वही परिणाम मिलता है अपने आप कार्य करता है:
SELECT LEFT('1234', 2);
परिणाम:
12
इसके अलावा, मैं एक कारण के बारे में सोचने के लिए संघर्ष कर रहा हूं कि कोई भी संख्या को छोटा क्यों करना चाहता है (यह मानते हुए कि वे इसे पैड करने की कोशिश कर रहे हैं), लेकिन कम से कम इस पर विचार करने की बात है।
विधि 3 - RIGHT() और REPLICATE()
के संयोजन का उपयोग करें
यह विधि लगभग पिछली विधि के समान ही है, केवल अंतर यह है कि मैं केवल तीन शून्यों को REPLICATE()
से बदल देता हूं। समारोह:
SELECT RIGHT(REPLICATE('0', 3) + '1234', 7);
परिणाम:
0001234
REPLICATE()
फ़ंक्शन आपको प्रत्येक शून्य (या अन्य वर्ण) को कई बार टाइप करने से बचाता है।
बोनस विधि:विधि 4 - REPLACE () और STR () के संयोजन का उपयोग करें ()
यह विधि पूरी तरह से अलग कोण से पिछली विधियों में आती है:
SELECT REPLACE(STR('1234', 6),' ','0');
परिणाम:
001234
यहां हम REPLACE()
. का उपयोग करते हैं STR()
. के संयोजन में कार्य करता है किसी संख्या को एक विशिष्ट लंबाई की स्ट्रिंग में बदलने के लिए कार्य करता है, फिर किसी भी स्पेस वर्ण को शून्य में परिवर्तित करता है।
सावधान रहने वाली एक बात यह है कि, यदि आप संख्या को छोटा करते हैं (जैसा कि हमने पिछले उदाहरण में किया था), तो आपके पास (संक्षिप्त) संख्या के बजाय तारांकन का एक गुच्छा होगा:
SELECT REPLACE(STR('1234', 2),' ','0');
परिणाम:
**