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

CAST और IsNumeric

यदि varchar मान को किसी भी संख्या प्रकार में परिवर्तित किया जा सकता है, तो IsNumeric 1 लौटाता है। इसमें इंट, बिगिंट, डेसीमल, न्यूमेरिक, रियल और फ्लोट शामिल हैं।

वैज्ञानिक संकेतन आपके लिए समस्या पैदा कर सकता है। उदाहरण के लिए:

Declare @Temp Table(Data VarChar(20))

Insert Into @Temp Values(NULL)
Insert Into @Temp Values('1')
Insert Into @Temp Values('1e4')
Insert Into @Temp Values('Not a number')

Select Cast(Data as bigint)
From   @Temp
Where  IsNumeric(Data) = 1 And Data Is Not NULL

एक तरकीब है जिसका उपयोग आप IsNumeric के साथ कर सकते हैं ताकि यह वैज्ञानिक संकेतन वाली संख्याओं के लिए 0 लौटाए। दशमलव मानों को रोकने के लिए आप इसी तरह की तरकीब अपना सकते हैं।

IsNumeric(YourColumn + 'e0')

IsNumeric(YourColumn + '.0e0')

इसे आज़माएं।

SELECT CAST(myVarcharColumn AS bigint)
FROM myTable
WHERE IsNumeric(myVarcharColumn + '.0e0') = 1 AND myVarcharColumn IS NOT NULL
GROUP BY myVarcharColumn


  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 स्क्रिप्ट निष्पादित करें (GO कमांड के साथ)

  2. SQL सर्वर में किसी लिंक किए गए सर्वर के विरुद्ध SERVERPROPERTY() चलाएँ

  3. डेटाबेस मेल ट्यूटोरियल

  4. कॉलम के रूप में ROWS प्राप्त करें (SQL सर्वर डायनेमिक PIVOT क्वेरी)

  5. किसी प्रोफ़ाइल में डेटाबेस मेल खाता जोड़ें (T-SQL)