पर ऊपर या नीचे गोल करें जैसा कि सवाल बताता है, मुझे 0-14 से संख्याओं के अपवाद के साथ निकटतम 20 तक गोल या नीचे की आवश्यकता है, सभी को 20 तक गोल होना चाहिए, क्योंकि शून्य मानों की अनुमति नहीं है। तालिका नई values.For साथ अद्यतन करने की नहीं है अब मैं केवल ऊपर और नीचे निकटतम 100 को गोलाई में कामयाब रहे या नीचे के रूप में देखी गई:निकटतम 20
CASE WHEN ROUND(number,-2)=0 THEN CAST(ROUND(number,-2)+100 AS DECIMAL(18, 0))
ELSE CAST(ROUND(number,-2) AS DECIMAL(18,0)) END AS [NUMBER]
20.0 तक विभाजित एक फ़्लोटिंग पॉइंट नंबर को मजबूर करेगा। आपको 1.0 – cadrell0
द्वारा एकाधिक की आवश्यकता नहीं है, इसलिए, यह मूल रूप से वही विचार है। लेकिन हाँ, इसे 'ईएलएसई राउंड (@testValue/20.0, 0) * 20' भी लिखा जा सकता है। यदि '20' एक चर है जो 'Int' भी है, तो आपको फिर से' * 1.0' की आवश्यकता होगी। – Yuck
मुझे कोई जानकारी नहीं है कि कभी-कभी परिणाम 1 या 2 क्यों होता है (विभिन्न मूल्यों के साथ बीटीडब्ल्यू, 1 9; 2 9; 16 आदि)। लेकिन मैंने कोड को मेरे प्रश्न में वर्णित प्रारूप के साथ संशोधित किया और यह बहुत अच्छा काम किया। बहुत धन्यवाद, मैंने 1.0 के साथ गुणा करने के बारे में नहीं सोचा था। – Hari