यदि 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