SQLite में एक printf()
होता है फ़ंक्शन या format()
फ़ंक्शन जो हमें प्रारूप स्ट्रिंग के अनुसार संख्याओं को प्रारूपित करने की अनुमति देता है।
SQLite 3.18.0 की तरह, यह एक अल्पविराम ध्वज को स्वीकार करता है, जो हमें पूर्णांकों के लिए हजारों अंकों पर अल्पविराम विभाजक रखने में सक्षम बनाता है।
इसे वास्तविक/अस्थायी बिंदु संख्याओं के साथ काम करने के लिए आगे काम किया जा सकता है।
उदाहरण
यहां एक पूर्णांक को अल्पविराम से हज़ार विभाजक के रूप में स्वरूपित करने का एक उदाहरण दिया गया है:
SELECT printf("%,d", 123456789);
परिणाम:
123,456,789
"%,d"
. का प्रारूप स्ट्रिंग इस परिणाम को निर्धारित किया है।
असली/अस्थायी बिंदु संख्याएं
उपरोक्त समाधान केवल तभी काम करता है जब संख्या को उसके भिन्नात्मक भाग के बिना लौटाया जाता है।
आइए उस प्रारूप स्ट्रिंग को वास्तविक संख्या पर लागू करें:
SELECT printf("%,d", 1234567.4567);
परिणाम:
1,234,567
हमें अभी भी समूह विभाजक के रूप में अल्पविराम मिलते हैं, क्योंकि हमारे प्रारूप स्ट्रिंग में भिन्नात्मक भाग शामिल नहीं होता है।
आंशिक भाग को वापस करने का तरीका यहां दिया गया है:
SELECT printf("%.2f", 1234567.4567);
परिणाम:
1234567.46
यहां, "%.2f"
. की प्रारूप स्ट्रिंग निर्दिष्ट करता है कि परिणाम में दो दशमलव स्थान शामिल होने चाहिए। हम "%.3f"
. का उपयोग कर सकते हैं तीन दशमलव स्थानों के लिए, और इसी तरह।
आप मान सकते हैं कि हम निम्नलिखित कार्य कर सकते हैं:
SELECT printf("%,d.2f", 1234567.4567);
परिणाम:
1,234,567.2f
लेकिन यह स्पष्ट रूप से काम नहीं किया।
SQLite हमें संख्याओं के लिए व्यापक स्वरूपण क्षमता प्रदान नहीं करता है। संख्या स्वरूपण काफी शामिल हो सकता है, और आमतौर पर आवेदन स्तर पर स्वरूपण लागू करना बेहतर होता है।
उस ने कहा, अगर आपको वास्तव में SQLite में ऐसा करने की ज़रूरत है, तो आप अल्पविराम के साथ पूर्णांक भाग को स्वरूपित करने का प्रयास कर सकते हैं, फिर इसे दशमलव भाग के साथ जोड़ सकते हैं।
उदाहरण के लिए, मान लें कि हमारे पास price
. नामक एक डेटाबेस कॉलम है , जो निम्न परिणाम देता है:
SELECT price FROM Products;
परिणाम:
5457.99 1238999.99 11.357 3.49 3.0001 1234567.89 1499.5 9.49 149
हम निम्नलिखित पंक्तियों के साथ कुछ कर सकते हैं ताकि उन सभी नंबरों को हजारों विभाजक और . के साथ प्रारूपित किया जा सके एक दशमलव बिंदु:
SELECT
printf("%,d", price)
||
substr(
printf("%.2f", price),
instr(printf("%.2f", price), "."),
length(printf("%.2f", price)) - instr(printf("%.2f", price), ".") + 1
)
FROM Products;
परिणाम:
5,457.99 1,238,999.99 11.36 3.49 3.00 1,234,567.89 1,499.50 9.49 149.00
द format()
समारोह
SQLite 3.38.0 (22 फरवरी 2022 को जारी) का नाम बदलकर printf()
कर दिया गया format()
. पर काम करता है . मूल printf()
नाम को पश्चगामी संगतता के लिए उपनाम के रूप में रखा जाता है।
इसलिए, इस पृष्ठ पर पहला उदाहरण निम्नानुसार बदला जा सकता है:
SELECT format("%,d", 123456789);
परिणाम:
123,456,789