SQL में, RPAD()
एक निर्दिष्ट वर्ण के साथ एक स्ट्रिंग के दाहिने हिस्से को पैड करने के लिए प्रयोग किया जाता है। फ़ंक्शन का उपयोग स्ट्रिंग्स और संख्याओं पर किया जा सकता है, हालांकि DBMS के आधार पर, संख्याओं को पैड किए जाने से पहले एक स्ट्रिंग के रूप में पारित करना पड़ सकता है।
डीबीएमएस जिनके पास RPAD()
. है फ़ंक्शन में MySQL, MariaDB, PostgreSQL और Oracle शामिल हैं।
DBMS जो नहीं एक RPAD()
है फ़ंक्शन में SQL सर्वर और SQLite शामिल हैं।
उदाहरण
RPAD()
को प्रदर्शित करने के लिए यहां एक उदाहरण दिया गया है समारोह:
SELECT RPAD('Look Right', 40);
परिणाम:
+------------------------------------------+ | RPAD('Look Right', 40) | +------------------------------------------+ | Look Right | +------------------------------------------+
यहां, स्ट्रिंग के दाहिने हिस्से को एक स्पेस (डिफ़ॉल्ट पैडिंग कैरेक्टर) के साथ गद्देदार किया गया है, और परिणामी स्ट्रिंग 40 वर्ण लंबी है (क्योंकि मैंने 40
निर्दिष्ट किया है। दूसरे तर्क के रूप में)।
Oracle वही काम करता है, लेकिन हमें FROM DUAL
. का उपयोग करने की आवश्यकता है इस तरह की कोई क्वेरी करते समय (वास्तविक तालिका को क्वेरी किए बिना):
SELECT RPAD('Look Right', 40)
FROM DUAL;
परिणाम:
RPAD('LOOKRIGHT',40) ___________________________________________ Look Right
उपरोक्त उदाहरणों में, मैंने पैडिंग को स्पष्ट करने के लिए बहुत अधिक पैडिंग का उपयोग किया।
यहां एक और उदाहरण दिया गया है जो सही पैडिंग को अधिक स्पष्ट रूप से प्रदर्शित कर सकता है:
SELECT CONCAT(RPAD('abc', 4), 'def');
परिणाम:
abc def
इस मामले में, मैंने abc
. को संयोजित किया है def
. के साथ लेकिन abc
RPAD()
. के साथ दायां पैडिंग लागू किया गया था समारोह।
पैडिंग कैरेक्टर निर्दिष्ट करें
पैडिंग के लिए जगह होना जरूरी नहीं है। पैडिंग में उपयोग करने के लिए वर्ण (या वर्ण) निर्दिष्ट करने के लिए हम वैकल्पिक रूप से तीसरा तर्क जोड़ सकते हैं।
SELECT RPAD('Rat', 4, 't');
परिणाम:
Ratt
इसका उपयोग शून्य (या किसी अन्य अंक) के साथ पैड नंबरों को सही करने के लिए भी किया जा सकता है:
SELECT RPAD('7', 3, '0');
परिणाम:
700
यह स्पष्ट रूप से संख्या को बदल देता है और इस मामले में, संख्या को केवल 100 से गुणा करके प्राप्त किया जा सकता था। हालांकि, किसी संख्या को गुणा करना वास्तव में उस पर पैडिंग लागू नहीं करता है।
निम्नलिखित उदाहरण दर्शाता है कि मेरा क्या मतलब है:
SELECT RPAD('77', 3, '0');
परिणाम:
770
77 को 100 से गुणा करने पर गलत परिणाम मिलता।
उपरोक्त उदाहरणों में मैंने संख्या को एक स्ट्रिंग के रूप में पास किया है।
कुछ डीबीएमएस (जैसे मारियाडीबी और माईएसक्यूएल) में हम नंबर को एक नंबर के रूप में पास कर सकते हैं, साथ ही साथ इसे पैड करने के लिए नंबर भी दे सकते हैं:
SELECT RPAD(7, 3, 0);
परिणाम:
700
हम इसे Oracle में भी कर सकते हैं:
SELECT RPAD(7, 3, 0)
FROM DUAL;
परिणाम:
700
लेकिन PostgreSQL को इससे कोई समस्या है:
SELECT RPAD(7, 3, 0);
परिणाम:
ERROR: function rpad(integer, integer, integer) does not exist
एसक्यूएल सर्वर
SQL सर्वर में RPAD()
नहीं है फ़ंक्शन, लेकिन यह हमें संख्याओं और स्ट्रिंग्स में पैडिंग जोड़ने से नहीं रोकता है।
नंबर
यदि संख्या का एक भिन्नात्मक भाग है, तो FORMAT()
समारोह पर्याप्त होगा:
SELECT
FORMAT(0.7, '.000') AS "1",
FORMAT(0.7, '0.00') AS "2",
FORMAT(7.0, '0.00') AS "3";
परिणाम:
+------+------+------+ | 1 | 2 | 3 | |------+------+------| | .700 | 0.70 | 7.00 | +------+------+------+
जिस तरह से यह काम करता है वह यह है कि हम संख्या को पास करते हैं, उसके बाद एक प्रारूप स्ट्रिंग। उपरोक्त उदाहरण में, प्रारूप स्ट्रिंग में कस्टम संख्यात्मक प्रारूप विनिर्देशक होते हैं जिसके परिणामस्वरूप मूल संख्या में अंकों को उसके भिन्नात्मक भाग में जोड़ा जाता है। यदि मूल संख्या में पहले से ही इतने अंक नहीं हैं, तो यह शून्य से भरा हुआ है।
लेकिन यदि संख्या में भिन्नात्मक भाग नहीं है, तो हम REPLACE()
का उपयोग कर सकते हैं FORMAT()
. के साथ लागू होने वाले दशमलव विभाजक को हटाने के लिए कार्य करता है समारोह:
SELECT
REPLACE(FORMAT(7, '.00', 'en-US'), '.', '') AS "1",
REPLACE(FORMAT(17, '.00', 'en-US'), '.', '') AS "2",
REPLACE(FORMAT(73.5, '.00', 'en-US'), '.', '') AS "3";
परिणाम:
+-----+------+------+ | 1 | 2 | 3 | |-----+------+------| | 700 | 1700 | 7350 | +-----+------+------+
यदि आवश्यक हो तो इस विधि का उपयोग अग्रणी शून्य जोड़ने के लिए भी किया जा सकता है। बस उन्हें प्रारूप स्ट्रिंग में दशमलव बिंदु के बाईं ओर जोड़ें।
यहां, मैंने स्पष्ट रूप से en-US
. का उपयोग किया है (वैकल्पिक) तीसरे तर्क के रूप में यह सुनिश्चित करने के लिए कि दशमलव विभाजक एक अवधि/पूर्ण विराम है, जो कि en-US
द्वारा उपयोग की जाने वाली परंपरा है लोकेल।
पाठ
यहां एक तकनीक है जिसका उपयोग टेक्स्ट डेटा पर किया जा सकता है:
SELECT
LEFT('Dog' + '.........', 9) AS "1",
LEFT('Horse' + '.........', 9) AS "2",
LEFT('Crocodile' + '.........', 9) AS "3";
परिणाम:
+-----------+-----------+-----------+ | 1 | 2 | 3 | |-----------+-----------+-----------| | Dog...... | Horse.... | Crocodile | +-----------+-----------+-----------+
हालांकि आपको सावधान रहना होगा कि गलती से स्ट्रिंग के हिस्से को न काटें, या अवांछित स्थान न जोड़ें।