sql - एसक्यूएल दो पूर्णांक को विभाजित करता है और एक दशमलव मान त्रुटि प्राप्त करता है




sql-server asp-classic (3)

एक एसक्यूएल स्टेटमेंट में, मैं दो पूर्णांक (पूर्णांक 1 को "abc" मेरे कोड में, पूर्णांक 2 को मेरे कोड में "xyz") में विभाजित करने का प्रयास कर रहा हूं, और एक दशमलव (नीचे मेरे कोड में डीईएफ़) के रूप में परिणाम प्राप्त कर रहा हूँ। दशमलव के परिणाम में एक प्रमुख 1 या 0 होना चाहिए, दशमलव के बाद और दशमलव के 3 नंबर के बाद। हालांकि मेरा कोड बिना कोई दशमलव के साथ सीधे 0 लौट रहा है।

SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS def

"0" में यह कोड परिणाम है, जब मैं क्या चाहता हूं "0.001" या "0.963" जैसा कुछ है मुझे विश्वास है कि यह अभी भी "def" को पूर्णांक के रूप में देख रहा है, और दशमलव के रूप में नहीं।

मैंने ए.बी.सी. और एक्सवायज़ पर सीएएसटी का उपयोग करने की कोशिश की है लेकिन यह वही बात वापस करता है मैंने निम्नलिखित कोड की भी कोशिश की है:

SELECT CONVERT(DECIMAL(4,3), abc/xyz) AS CONVERT(DECIMAL(4,3)def)

लेकिन यह मुझे एक त्रुटि देता है, कह रही है कि "कन्वर्ट" शब्द के पास एक वाक्यविन्यास त्रुटि है।


आशा है कि यह काम करेगा ...

SELECT CONVERT(DECIMAL(4,3), abc/10.0) AS def
  FROM dbo.whatever;

जैसे कुछ कोशिश करो

SELECT CONVERT(DECIMAL(4,3), abc/(xyz * 1.0)) AS def

विभाजित करने से पहले दशमलव में परिवर्तित करें, उसके बाद नहीं। उत्तर प्रारूप के लिए कन्वर्ट

SELECT 
  CONVERT( DECIMAL(4,3)
         , ( CONVERT(DECIMAL(10,3), abc) / CONVERT(DECIMAL(10,3), xyz) ) 
         ) AS def




asp-classic