2008-10-09 10 views
10

मुझे पोस्टग्रेस्क्ल पर SQL क्वेरी के साथ कोई समस्या है।एसक्यूएल से चुनें ... डेटा प्रकार विनिर्देशक के साथ?

1 select t.CourseNr, t.StudentsPerCourse, g.StudentCount, 
2  t.StudentsPerCourse/g.StudentCount as Marketshare 
3 from (select CourseNr, count(*) as StudentsPerCourse 
4  from taking 
5  group by CourseNr) t, 
6  (select count(*) as StudentCount 
7  from Students) g; 

समस्या लाइन 2 में बाजार स्तंभ दोनों StudentsPerCourse और StudentCount प्रकार पूर्णांक के हैं: यह चयन खंड डेटाबेस पर एक व्याख्यान से एक उदाहरण है।

मेरे पोस्टग्रेस्क्ल डेटाबेस पर इसका उपयोग करते समय, मार्केटशेयर कॉलम का मूल्यांकन एक प्रकार के रूप में किया जाता है, जबकि मुझे यहां एक फ्लोट/न्यूमेरिक की आवश्यकता होगी। मुझे चयन खंडों पर पोस्टग्रेस्क्ल दस्तावेज़ प्रलेखन और न ही googling द्वारा डेटा प्रकार निर्दिष्ट करने का कोई तरीका नहीं मिला। कॉलम प्रकार निर्दिष्ट करने के लिए कोई (अधिमानतः मानक एसक्यूएल) तरीका है या क्या मुझे यहां कुछ याद आ रही है?

उत्तर

9

CAST() एक या दोनों स्रोत कॉलम दशमलव/फ्लोट/वास्तविक/डबल/आदि प्रकार के रूप में।

+0

हाँ, इससे मदद मिली :) धन्यवाद! – VolkA

+1

वैकल्पिक कास्टिंग वाक्यविन्यास "mycolumn चुनें :: mytable से असली;" लेकिन मुझे लगता है कि CAST() फ़ंक्शन अधिक पोर्टेबल है - आपको शायद उस पर चिपकना चाहिए। – Neall

+0

मुझे वह शॉर्टेंड पसंद है: मेरी इच्छा है कि यह विभिन्न विक्रेताओं के बीच बेहतर समर्थित हो। –

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