Sqlserver
 sql >> डेटाबेस >  >> RDS >> Sqlserver

मैं SQL में दशमलव स्थानों की गणना कैसे करूं?

आप कुछ इस तरह इस्तेमाल कर सकते हैं:

declare @v sql_variant

set @v=0.1242311

select SQL_VARIANT_PROPERTY(@v, 'Scale') as Scale

यह 7 लौटाएगा ।

मैंने उपरोक्त क्वेरी को float . के साथ काम करने की कोशिश की कॉलम लेकिन उम्मीद के मुताबिक काम नहीं कर सका। यह केवल sql_variant . के साथ काम करता है कॉलम जैसा कि आप यहां देख सकते हैं:http://sqlfiddle.com/#!6/5c62c/ 2

इसलिए, मैंने इस answer पर एक और तरीका खोजा और निर्माण किया। , मुझे यह मिल गया:

SELECT value,
LEN(
    CAST(
         CAST(
              REVERSE(
                      CONVERT(VARCHAR(50), value, 128)
                     ) AS float
             ) AS bigint
        )
   ) as Decimals
FROM Numbers

इसका परीक्षण करने के लिए यहां एक SQL Fiddle है:http://sqlfiddle.com/#!6/ 23डी4एफ/29

उस छोटी सी विचित्रता को ध्यान में रखते हुए, यहां एक संशोधित संस्करण है जो उस मामले को संभालेगा जब फ्लोट मान में कोई दशमलव भाग न हो:

SELECT value,
       Decimals = CASE Charindex('.', value)
                    WHEN 0 THEN 0
                    ELSE
           Len (
            Cast(
             Cast(
              Reverse(CONVERT(VARCHAR(50), value, 128)) AS FLOAT
                 ) AS BIGINT
                )
               )
                    END
FROM   numbers

यहाँ संलग्न SQL Fiddle है:http://sqlfiddle.com/#!6/10d54/11



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. संग्रहीत प्रक्रिया के अंदर डेटाबेस का प्रयोग करें

  2. दो तिथियों के बीच के महीने

  3. MSSQL पर GROUP_CONCAT फ़ंक्शन का उपयोग कैसे करें

  4. SQL डेटाटाइम कन्वर्ट करता है और घंटे घटाता है

  5. यदि SQL सर्वर में स्थिति है तो मान का चयन करें