Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> MySQL

MySQL में एक वैल्यू को CAST करके दूसरे से डिवीजन कैसे करें?

CAST() से इंटीजर डिवीजन को डेसीमल डिवीजन में बदलना

MySQL में दो इंटीजर कॉलम का डिवीजन करने पर इंटीजर डिवीजन होता है (ट्रंकेटेड)। सटीक डेसीमल परिणाम के लिए एक ऑपरेंड को CAST() से DECIMAL में बदलें।

टेबल बनाना और डेटा इन्सर्ट करना

CREATE TABLE DemoTable1352 (
    Value1 INT,
    Value2 INT
);

INSERT INTO DemoTable1352 VALUES(10, 30);
INSERT INTO DemoTable1352 VALUES(40, 60);
INSERT INTO DemoTable1352 VALUES(110, 130);

मौजूदा डेटा

+--------+--------+
| Value1 | Value2 |
+--------+--------+
| 10     | 30     |
| 40     | 60     |
| 110    | 130    |
+--------+--------+

बिना CAST (इंटीजर डिवीजन)

SELECT Value1 / Value2 FROM DemoTable1352;
+-----------------+
| Value1 / Value2 |
+-----------------+
| 0               |
| 0               |
| 0               |
+-----------------+

क्वेरी: CAST करके सटीक डिवीजन

SELECT CAST(Value1 AS DECIMAL(18,14)) / Value2 
FROM DemoTable1352;

आउटपुट

+-----------------------------------------+
| cast(Value1 as DECIMAL(18,14)) / Value2 |
+-----------------------------------------+
| 0.333333333333333333                    |
| 0.666666666666666666                    |
| 0.846153846153846153                    |
+-----------------------------------------+

DECIMAL(18,14) का अर्थ

  • 18 = कुल डिजिट्स (प्रिसिजन)
  • 14 = डेसीमल के बाद डिजिट्स (स्केल)
  • जरूरत के अनुसार एडजस्ट करें: DECIMAL(10,2) = 2 डेसीमल प्लेस

अन्य तरीके

-- 1.0 से गुणा करके (इम्प्लिसिट कन्वर्जन)
SELECT Value1 * 1.0 / Value2 FROM DemoTable1352;

-- CAST के अन्य सिंटैक्स
SELECT CONVERT(Value1, DECIMAL(10,4)) / Value2 FROM DemoTable1352;

-- दोनों कास्ट
SELECT CAST(Value1 AS DECIMAL(10,4)) / CAST(Value2 AS DECIMAL(10,4)) FROM DemoTable1352;

राउंडिंग के लिए

SELECT ROUND(CAST(Value1 AS DECIMAL(10,4)) / Value2, 2) AS Ratio 
FROM DemoTable1352;
+--------+
| Ratio  |
+--------+
| 0.33   |
| 0.67   |
| 0.85   |
+--------+

ZERO डिवीजन हैंडलिंग

SELECT CASE 
    WHEN Value2 = 0 THEN NULL 
    ELSE CAST(Value1 AS DECIMAL(10,4)) / Value2 
END AS Ratio FROM DemoTable1352;
  1. - MySQL में IFNULL() का उपयोग करके NULL और गैर-NULL मानों के साथ गणितीय गणना करना

    MySQL में IFNULL() के साथ NULL-सुरक्षित अंकगणित NULL मानों वाले कॉलम पर गणितीय संचालन करते समय, MySQL NULL लौटाता है। IFNULL() (या COALESCE()) का उपयोग करके गणना से पहले NULL को डिफ़ॉल्ट मान (जैसे 0) से बदलें। उदाहरण: NULL के साथ मान जोड़ना SELECT * FROM DemoTable1462; +--------+--------+ | Value1

  1. - MySQL में IS NOT NULL का उपयोग करके NULL मानों को अनदेखा करना और बाकी मान प्रदर्शित करना

    MySQL में IS NOT NULL के साथ गैर-NULL मान फ़िल्टर करना क्वेरी परिणामों से NULL मानों को बाहर करने के लिए, IS NOT NULL ऑपरेटर का उपयोग करें। यह != NULL या <> NULL से अलग है, जो हमेशा UNKNOWN (गलत) लौटाते हैं। उदाहरण: वैध स्कोर वाले छात्र ढूंढना SELECT * FROM DemoTable1458; +--------------+---------

  1. - MySQL में कॉलम मानों को अलग टेक्स्ट के साथ जोड़ें और एकल कॉलम में प्रदर्शित करें

    आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable -> ( -> Id int, -> Name varchar(20) -> ); Query OK, 0 rows affected (0.93 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable values(101,Chris); Query OK, 1 row affected (0.25 sec) mysq