2012-12-10 15 views
48

मैं PostgreSQL क्वेरी के हिस्से के रूप में स्ट्रिंग में एक पूर्णांक को कैसे परिवर्तित करूं?मैं PostgreSQL क्वेरी के हिस्से के रूप में स्ट्रिंग में एक पूर्णांक को कैसे परिवर्तित करूं?

तो, उदाहरण के लिए, मैं की जरूरत है:

SELECT * FROM table WHERE <some integer> = 'string of numbers' 

जहां <some integer> 1 करने के लिए 15 से कहीं से भी अंकों का होना कर सकते हैं।

+0

क्या आप अगर होंगे और अपना स्ट्रिंग में शून्य शून्य है? – thisfeller

उत्तर

57

क्योंकि संख्या 15 अंकों तक हो सकती है, तो आप 64 बिट (8-बाइट) पूर्णांक में डालने के लिए तैयार होंगे। इसे आज़माएं:

SELECT * FROM table 
WHERE myint = mytext::int8 

:: कास्ट ऑपरेटर ऐतिहासिक लेकिन सुविधाजनक है। Postgres भी SQL मानक वाक्य रचना

myint = cast (mytext as int8) 
+22

आह। मुझे वास्तव में इसे दूसरी तरफ की आवश्यकता थी (मायिंट वर्चर में परिवर्तित हो गया) लेकिन आपका जवाब सही जगह पर मुझे मार्गदर्शन करने के लिए पर्याप्त था। मैंने अभी 'myint :: varchar (255) = mytext' किया है और यह काम करता है। धन्यवाद! – spyd3rr

+0

कड़ाई से, यह सवाल का जवाब नहीं देता है। उदाहरण समस्या नहीं थी - एक पूर्णांक को एक char/string में परिवर्तित करना था। लेकिन धन्यवाद, @ spyd3rr –

+0

@fred ऐसा नहीं है: ओपी की * वास्तविक * समस्या संख्यात्मक और पाठ मानों की तुलना करने में असफल रही है। यह उत्तर दिखाता है कि पाठ को किसी संख्या में कास्ट करके इसे कैसे ठीक किया जाए (भले ही ओपी ने टेक्स्ट को संख्या कास्टिंग करने का प्रयास किया हो)। – Bohemian

49

आप अपने मामले में इस तरह से एक स्ट्रिंग के लिए एक पूर्णांक डाल सकता

intval::text 

और इतने के अनुरूप

SELECT * FROM table WHERE <some integer>::text = 'string of numbers' 
संबंधित मुद्दे

 संबंधित मुद्दे