Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

गैर-संख्या वर्ण जो SQL सर्वर में ISNUMERIC () का उपयोग करते समय सकारात्मक लौटते हैं

ISNUMERIC() SQL सर्वर में फ़ंक्शन आपको यह जांचने में सक्षम बनाता है कि कोई व्यंजक संख्यात्मक है या नहीं।

हालाँकि, कई बार आपको ऐसे परिणाम भी मिल सकते हैं जिनकी आपने अपेक्षा नहीं की थी। ऐसा तब हो सकता है जब आपके पास एक ऐसा व्यंजक हो जिसमें एक ऐसा वर्ण हो जो एक संख्या नहीं है, लेकिन फिर भी ISNUMERIC() द्वारा स्वीकार किया जाता है संख्यात्मक होने के नाते।

वर्णों का एक समूह है जो ISNUMERIC() . है संख्यात्मक के रूप में स्वीकार करता है जिसे आपने संख्यात्मक के रूप में नहीं सोचा होगा। इनमें प्लस जैसे अक्षर शामिल हैं (+ ), माइनस (- ), और विभिन्न मुद्रा प्रतीकों। साथ ही, इसके स्थान के आधार पर, अक्षर e पूरी अभिव्यक्ति को संख्यात्मक के रूप में व्याख्या करने की अनुमति भी दे सकता है।

उदाहरण

मेरे मतलब के कुछ उदाहरण यहां दिए गए हैं:

SELECT 
  ISNUMERIC('+') AS [+],
  ISNUMERIC('-') AS [-],
  ISNUMERIC('$') AS [$],
  ISNUMERIC('1e2') AS [1e2],
  ISNUMERIC('1e+2') AS [1e+2],
  ISNUMERIC('e') AS [e],
  ISNUMERIC('e+') AS [e+];

परिणाम:

+-----+-----+-----+-------+--------+-----+------+
| +   | -   | $   | 1e2   | 1e+2   | e   | e+   |
|-----+-----+-----+-------+--------+-----+------|
| 1   | 1   | 1   | 1     | 1      | 0   | 0    |
+-----+-----+-----+-------+--------+-----+------+

ध्यान दें कि e और e+ जब वे अपने आप होते हैं तो एक नकारात्मक परिणाम लौटाते हैं, लेकिन संख्याओं से घिरे होने पर एक सकारात्मक परिणाम लौटाते हैं।

ऐसा शायद इसलिए है क्योंकि, अपने आप में, वे एक संख्या का प्रतिनिधित्व नहीं करते हैं, लेकिन जब वे संख्याओं से घिरे होते हैं, तो पूरी अभिव्यक्ति को वैज्ञानिक संकेतन (e) के रूप में व्याख्यायित किया जा सकता है। और e+ अक्सर वैज्ञानिक संकेतन में उपयोग किया जाता है)।

संख्यात्मक डेटा प्रकार

Microsoft दस्तावेज़ के अनुसार, डेटा प्रकार जो ISNUMERIC() संख्यात्मक के रूप में पहचान करेगा जिसमें निम्नलिखित शामिल हैं।

सटीक अंक

  • बिगिन्ट
  • इंट
  • स्मॉलिंट
  • छोटेपन
  • बिट

फिक्स्ड प्रेसिजन

  • दशमलव
  • संख्यात्मक

अनुमानित

  • फ्लोट
  • असली

मौद्रिक मूल्य

  • पैसा
  • छोटा पैसा

इसके अलावा, ISNUMERIC() कुछ वर्णों के लिए 1 लौटाता है जो संख्या नहीं हैं (जैसा कि ऊपर के उदाहरण में देखा गया है)। इसमें प्लस जैसे अक्षर शामिल हैं (+ ), माइनस (- ), और मान्य मुद्रा चिह्न जैसे डॉलर चिह्न ($ )

साथ ही, जैसा कि उदाहरण में देखा गया है, अक्षर e परिणाम को तब प्रभावित कर सकता है जब यह एक बड़े एक्सप्रेशन का हिस्सा हो, और उस एक्सप्रेशन में इसके प्लेसमेंट पर निर्भर करता हो।


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL सर्वर 2016:डेटा आयात करें

  2. SQL सर्वर अलगाव स्तर:एक श्रृंखला

  3. INNER जॉइन का उपयोग करके SQL सर्वर में एकाधिक तालिकाओं को अपडेट करें

  4. क्या इनर जॉइन कंडीशन में 'OR' होना एक बुरा विचार है?

  5. एक कॉलम को कई पंक्तियों में विभाजित करें