SQL Server 2005 पर SQL क्वेरी का उपयोग करके एक स्ट्रिंग को पूर्णांक में कैसे परिवर्तित करें?
SQL Server 2005 पर SQL क्वेरी का उपयोग करके एक स्ट्रिंग को पूर्णांक में कैसे परिवर्तित करें?
जवाबों:
आप CAST या CONVERT का उपयोग कर सकते हैं :
SELECT CAST(MyVarcharCol AS INT) FROM Table
SELECT CONVERT(INT, MyVarcharCol) FROM Table
select CASE WHEN ISNUMERIC('x') = 1 THEN CAST('x' AS INT) ELSE 0 END
IsNumeric()कुछ विकृत परिणाम उत्पन्न कर सकता है। यह स्ट्रिंग के लिए TRUE लौटाएगा "-", जो तब भी एक त्रुटि का कारण बनेगा जब आप इसे एक नंबर पर डालने का प्रयास करेंगे।
यह भी ध्यान रखें कि जब संख्यात्मक स्ट्रिंग '56.72'से INT में परिवर्तित किया जा रहा है तो आप SQL त्रुटि के खिलाफ आ सकते हैं।
Conversion failed when converting the varchar value '56.72' to data type int.
इस के आसपास पाने के लिए बस दो धर्मान्तरित हैं:
STRING -> NUMERIC -> INT
या
SELECT CAST(CAST (MyVarcharCol AS NUMERIC(19,4)) AS INT)
जब TableA से TableB में डेटा कॉपी किया जाता है, तो रूपांतरण निहित होता है, इसलिए आपको दूसरे कन्वर्ट की आवश्यकता नहीं है (यदि आप निकटतम INT के लिए खुश हैं)
INSERT INTO TableB (MyIntCol)
SELECT CAST(MyVarcharCol AS NUMERIC(19,4)) as [MyIntCol]
FROM TableA
SQL सर्वर 2012 से शुरू होकर, आप TRY_PARSE या TRY_CONVERT का उपयोग कर सकते हैं ।
SELECT TRY_PARSE(MyVarcharCol as int)
SELECT TRY_CONVERT(int, MyVarcharCol)
यह कोशिश करो, यह मेरे लिए एथेना में काम किया:
cast(MyVarcharCol as integer)