INT को VARCHAR SQL में कन्वर्ट करें


341

मैं Sybase का उपयोग कर रहा हूं और मैं एक चयन कर रहा हूं जो मुझे "iftype" नामक एक कॉलम लौटाता है, लेकिन इसका प्रकार int है और मुझे varchar में रूपांतरित होने की आवश्यकता है। जब मैं कन्वर्ट फ़ंक्शन के बिना चयन करने की कोशिश करता हूं तो मुझे यह त्रुटि मिलती है:

त्रुटि कोड 257, SQL स्थिति 37000: डेटाटाइप 'VARCHAR' से 'INT' में निहित रूपांतरण की अनुमति नहीं है। इस क्वेरी को चलाने के लिए CONVERT फ़ंक्शन का उपयोग करें।

मुझे नहीं पता कि समारोह को कैसे लागू किया जाए CONVERT। क्या कोई भी कृपया मेरी मदद कर सकता है ?


5
मुझे लगता है कि आपको इसकी आवश्यकता है: msdn.microsoft.com/en-us/library/ms187928.aspx
Lajos Veres

जवाबों:


593

कन्वर्ट फ़ंक्शन का उपयोग करें।

SELECT CONVERT(varchar(10), field_name) FROM table_name

8
त्रुटि के अनुसार, यह है VARCHARकरने के लिए INT, लेकिन मैं अपने प्रश्न, नहीं त्रुटि संदेश का जवाब दे रहा हूँ।
तोबेरोथ

2
धन्यवाद। लेकिन अब मुझे एक और त्रुटि मिली। जब मैं इस प्रकार का चयन करने का प्रयास करता हूं: SELECT CONVERT (varchar (10), field_name) table_name से। या यहां तक ​​कि सामान्य की तरह: फ़ील्ड_नाम से चुनें तालिका_नाम। दोनों सही हैं। मुझे पता नहीं क्यों। लेकिन जब मैं चयन के अंत में एक "जहां" की कोशिश करता हूं, तो कन्वर्ट का उपयोग करते हुए या नहीं, मुझे एक ही त्रुटि मिलती है: डेटाटाइप 'वार्चर' से 'INT' में रूपांतरण को अनुमति नहीं है। इस क्वेरी को चलाने के लिए CONVERT फ़ंक्शन का उपयोग करें
मुरिलो

3
@ मेरिलो इसलिए क्योंकि त्रुटि आपके विचार से नहीं है। त्रुटि आपको बताती है कि आपका कोड varcharजहां intआवश्यक है, वहां उपयोग करने की कोशिश कर रहा है । आपको हमारी मदद के लिए हमें अपना वास्तविक एसक्यूएल विवरण लिखने की आवश्यकता है।
टोबेरोथ

14
@ टोबेरोथ, जो इसके लायक है, उसके लिए मैं सिर्फ गोग्लिंग द्वारा यहां उतरा हूं। एसओ के मूल्य का एक हिस्सा लगभग किसी भी प्रश्न का उत्तर मिल रहा है, यहां तक ​​कि बुनियादी भी।
काइलमिट 19

6
मुझे लगता है varchar(11)कि संख्या बड़ी नकारात्मक संख्या होने की स्थिति में होनी चाहिए ।
ट्रिस्टेड

100

STRफ़ंक्शन का उपयोग करें :

SELECT STR(field_name) FROM table_name

तर्क

float_expression

दशमलव बिंदु के साथ अनुमानित संख्यात्मक (फ्लोट) डेटा प्रकार की अभिव्यक्ति है।

लंबाई

कुल लंबाई है। इसमें दशमलव बिंदु, संकेत, अंक और स्थान शामिल हैं। डिफ़ॉल्ट 10 है।

दशमलव

दशमलव बिंदु के दाईं ओर स्थानों की संख्या है। दशमलव 16 से कम या उसके बराबर होना चाहिए। यदि दशमलव 16 से अधिक है, तो परिणाम दशमलव बिंदु के दाईं ओर सोलह स्थानों पर काट दिया जाता है।

स्रोत: https://msdn.microsoft.com/en-us/library/ms189527.aspx


3
STR()सही उत्तर होना चाहिए, यह विकल्पों की तुलना में सरल और कम त्रुटि वाला है।
HerrimanCoder

7
किसी अजीब कारण से, यह मेरे लिए काम नहीं आया क्योंकि यह पाठ के सामने एक टैब जोड़ रहा था, पता नहीं क्यों। चयनित समाधान ने हालांकि काम किया।
MaQy

3
परिवर्तित संख्या के मोर्चे पर str पैड स्पेस इसे बेकार बनाते हैं
m12lrpv

13
एलटीआरआईएम (एसटीआर ()) का उपयोग करें
ऐशिलॉन

2
एसटीआर () उस चर के मोर्चे पर व्हाट्सएप देता है जिसे आप स्ट्रिंग में बदलते हैं। यह दशमलव चर को परिवर्तित करने के लिए एक अच्छा विकल्प हो सकता है लेकिन इंट के लिए नहीं।
Ebleme


3

वास्तव में आपको एसटीआर या कन्वर्ट का उपयोग करने की आवश्यकता नहीं है। बस 'xxx' + LTRIM चुनें (1) काम करता है। संभवतः, LTRIM हुड के तहत कन्वर्ट या एसटीआर का उपयोग करता है।

LTRIM लंबाई प्रदान करने की आवश्यकता को भी हटा देता है और आमतौर पर डिफ़ॉल्ट 10 स्ट्रिंग रूपांतरण के लिए पूर्णांक के लिए पर्याप्त है।

SELECT LTRIM(ColumnName) FROM TableName

0

CONVERT(DATA_TYPE , Your_Column)SQL में CONVERT विधि के लिए वाक्य रचना है। इस कन्वर्ट फंक्शन से हम उस कॉलम के डेटा को परिवर्तित कर सकते हैं जो अल्पविराम (,) के दाईं ओर स्थित डेटा प्रकार में अल्पविराम (,) के उदाहरण के नीचे देखें।

SELECT CONVERT (VARCHAR(10), ColumnName) FROM TableName
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.