2012-04-10 10 views
8

मेरे पास एक तालिका में दो कॉलम हैं जो पूर्णांक मानों के साथ पॉप्युलेट किए गए हैं। प्रत्येक रिकॉर्ड के लिए, मैं उन दो कॉलम के मानों को विभाजित करना चाहता हूं और आउटपुट को प्रारूपित करना चाहता हूं ताकि दशमलव बिंदु दाईं ओर स्थानों पर स्थानांतरित हो।एसक्यूएल कास्ट int से दशमलव

उदाहरण के लिए, यदि मेरे पास दो कॉलम के मान 4 और 1 के रूप में एक रिकॉर्ड के लिए हैं और मैं 1 से 4 (इसलिए 1/4) विभाजित करना चाहता हूं तो मैं आउटपुट 25.00 होना चाहता हूं।

CAST(Total AS Decimal(2))/CAST(TotalAnswers AS Decimal(2)) AS 'Percent' 

मैं क्या पैरामीटर दशमलव के लिए में पारित का प्रतिनिधित्व करता है यह देखने के लिए कास्ट समारोह का एक वाक्य स्पष्टीकरण ढूँढने में सक्षम नहीं किया गया:

यहाँ आखिरी बात मैं थोड़ा पहले की कोशिश की है। जब मैं इसे बदलता हूं, तो यह कभी-कभी दशमलव के दाईं ओर स्थानों की संख्या को बदलता है लेकिन नतीजे हमेशा मेरी अपेक्षा नहीं करते हैं, इसलिए मैं इस पर थोड़ा सा सहायता प्राप्त करना चाहता हूं।

उत्तर

18

इस तरह लिखें यह:

SELECT CAST(CAST(Total As float)/TotalAnswers * 100 As decimal(8, 2)) 
+0

बहुत बढ़िया, बहुत बहुत धन्यवाद। – Darren

2

DECIMAL(2) दशमलव से पहले 2 अंकों के दशमलव और कोई अंक नहीं है। इससे आपको पर दशमलव बिंदु के बाद अंक रखने की अनुमति नहीं है!

DECIMAL(p,s) विनिर्देश कुल अंकों की संख्या (p) और दशमलव बिंदु (s) (जहां sp से बड़ा नहीं हो सकता है और अगर लोप 0 है सकते हैं) के बाद अंकों की संख्या को परिभाषित करता है। (- 2 दशमलव बिंदु के बाद, जिनमें से 4 अंक की कुल; इसलिए: दशमलव बिंदु से पहले 2 भी)

आप DECIMAL(4,2) की तरह कुछ का उपयोग करने की आवश्यकता है या ऐसा ही कुछ - और इससे पहले कि कुछ अंक दशमलव बिंदु के बाद कुछ - तो आप अपना वांछित परिणाम देखेंगे!

DECIMAL प्रकार और उसके वाक्य रचना पर जानकारी के लिए परामर्श पर decimal and numeric

2

वहाँ वास्तविक हैं मापदंडों के एक जोड़े MSDN पुस्तकें ऑनलाइन विषय ..

(p, s) 

जहां

  • पी "परिशुद्धता" का प्रतिनिधित्व करता है - अंकों की कुल संख्या दशमलव बिंदु से पहले और उसके बाद।
  • एस "स्केल" का प्रतिनिधित्व करता है - अंकों की संख्या दशमलव बिंदु के बाद।

केवल 1 पैरामीटर देकर, आप केवल सटीकता दे रहे हैं।

MDSN देखें।

1

दशमलव डेटा प्रकार के लिए पुस्तक-ऑनलाइन से: संख्यात्मक डेटा प्रकार जो सटीक और स्केल तय करते हैं।

दशमलव [(पी [, एस])] और संख्यात्मक [(पी [, एस])] निश्चित सटीकता और स्केल संख्याएं। जब अधिकतम परिशुद्धता का उपयोग किया जाता है, वैध मान हैं - 10^38 +1 से 10^38 - 1. दशमलव के लिए SQL-92 समानार्थी शब्द dec और dec (p, s) हैं। संख्यात्मक रूप से दशमलव के बराबर है।

पी (परिशुद्धता) दशमलव अंकों की अधिकतम संख्या जो बाईं ओर और दशमलव बिंदु के दाईं ओर संग्रहीत की जा सकती है। परिशुद्धता 38 से अधिकतम परिशुद्धता के माध्यम से 1 से एक मान होना चाहिए। डिफ़ॉल्ट परिशुद्धता 18.

एस (स्केल) दशमलव बिंदुओं के दाईं ओर संग्रहीत दशमलव अंकों की अधिकतम संख्या। स्केल 0 से पी के मान से होना चाहिए। स्केल केवल तभी निर्दिष्ट किया जा सकता है जब सटीक निर्दिष्ट किया गया हो। डिफ़ॉल्ट पैमाने 0 है; इसलिए,= एस < = पी। परिशुद्धता के आधार पर अधिकतम संग्रहण आकार भिन्न होते हैं।

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