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

फ़ील्ड मान का निर्धारण कैसे करें जो SQL सर्वर में (दशमलव, फ्लोट, इंट) में परिवर्तित नहीं हो सकता है

सादा ISNUMERIC बकवास है

  • खाली स्ट्रिंग, + , - और . सभी मान्य हैं
  • तो +. आदि
  • 1e-3 फ़्लोट के लिए मान्य है लेकिन दशमलव के लिए नहीं (जब तक कि आप फ़्लोट करने के लिए दशमलव तक नहीं जाते)

विशेष रूप से गुप्त लेकिन असफल समाधान के लिए, e0 . संलग्न करें या .0e0 फिर ISNUMERIC का उपयोग करें

SELECT
   ISNUMERIC(MyCOl + 'e0')   --decimal check,
   ISNUMERIC(MyCOl + '.0e0')  --integer check

तो

SELECT
    ID, VALUE,
    CAST(
          CASE WHEN ISNUMERIC(VALUE + 'e0') = 1 THEN VALUE ELSE NULL END
          AS decimal(38, 10)
        ) AS ConvertedVALUE
FROM
    Mytable



  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 सर्वर में एक मल्टी-स्टेटमेंट टेबल-वैल्यूड फंक्शन (MSTVF) बनाएं

  2. सबसे कठिन प्रश्नों पर सहायता के लिए सर्वश्रेष्ठ SQL सर्वर प्रदर्शन फ़ोरम

  3. कैसे ठीक करें "संबंधित विभाजन फ़ंक्शन योजना में उल्लिखित फ़ाइल समूहों की तुलना में अधिक विभाजन उत्पन्न करता है" संदेश 7707 SQL सर्वर में

  4. क्लाइंट पर sql सर्वर डेटाबेस के साथ एप्लिकेशन को कैसे परिनियोजित करें

  5. SQL तालिकाओं के लिए एक शुरुआती मार्गदर्शिका