यह स्थिति तब हो सकती है जब आपका invoice_number
एक टेक्स्ट कॉलम के रूप में संग्रहीत किया जाता है उदा। varchar(10)
. उस स्थिति में, वर्णानुक्रम के आधार पर, 9 अधिकतम मान होगा।
आदर्श रूप से, आपको उन मानों को संग्रहित करना चाहिए जिन पर आप संख्यात्मक डेटाटाइप के रूप में संख्यात्मक संचालन करना चाहते हैं उदा। int
. हालांकि, अगर किसी कारण से आप कॉलम डेटाटाइप नहीं बदल सकते हैं, तो आप MAX
लागू करने से पहले कॉलम को कास्ट करने का प्रयास कर सकते हैं। , इस तरह:
select max (convert(invoice_number, signed integer)) as maxinv from invoice
नोट:मैं विशेष रूप से "मानों का उल्लेख करता हूं जिन पर आप संख्यात्मक संचालन करना चाहते हैं" क्योंकि ऐसे मामले हैं जहां इनपुट टेक्स्ट पूरी तरह से संख्यात्मक है, जैसे फोन नंबर या शायद क्रेडिट कार्ड नंबर, लेकिन ऐसा कोई परिदृश्य नहीं है जिसमें आप 2 फोन नंबर जोड़ना चाहते हैं, या क्रेडिट कार्ड नंबर का वर्गमूल लेना चाहते हैं। ऐसे मानों को टेक्स्ट के रूप में संग्रहित किया जाना चाहिए।