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

MySQL में IFNULL() का उपयोग करके NULL और गैर-NULL मानों के साथ गणितीय गणना करना

MySQL में IFNULL() के साथ NULL-सुरक्षित अंकगणित

NULL मानों वाले कॉलम पर गणितीय संचालन करते समय, MySQL NULL लौटाता है। IFNULL() (या COALESCE()) का उपयोग करके गणना से पहले NULL को डिफ़ॉल्ट मान (जैसे 0) से बदलें।

उदाहरण: NULL के साथ मान जोड़ना

mysql> CREATE TABLE DemoTable1462 (
    -> Value1 INT,
    -> Value2 INT
    -> );
Query OK, 0 rows affected (0.55 sec)

mysql> INSERT INTO DemoTable1462 VALUES (10, 20), (50, NULL), (NULL, 70);
Query OK, 3 rows affected (0.12 sec)

mysql> SELECT * FROM DemoTable1462;
+--------+--------+
| Value1 | Value2 |
+--------+--------+
|     10 |     20 |
|     50 | NULL   |
| NULL   |     70 |
+--------+--------+
3 rows in set (0.00 sec)

IFNULL() के साथ सुरक्षित जोड़

mysql> SELECT IFNULL(Value1, 0) + IFNULL(Value2, 0) FROM DemoTable1462;

परिणाम

+-----------------------------------+
| ifnull(Value1,0)+ifnull(Value2,0) |
+-----------------------------------+
|                                30 |
|                                50 |
|                                70 |
+-----------------------------------+
3 rows in set (0.00 sec)

चरण-दर-चरण गणना

Value1Value2IFNULL(V1,0)IFNULL(V2,0)योग
1020102030
50NULL50050
NULL7007070

IFNULL() बनाम COALESCE()

अन्य संचालन

-- घटाव
SELECT IFNULL(Value1, 0) - IFNULL(Value2, 0) FROM DemoTable1462;

-- गुणा
SELECT IFNULL(Value1, 1) * IFNULL(Value2, 1) FROM DemoTable1462;

-- भाग (शून्य से बचें)
SELECT IFNULL(Value1, 0) / NULLIF(IFNULL(Value2, 0), 0) FROM DemoTable1462;

सर्वोत्तम अभ्यास

  • स्कीमा में संख्यात्मक कॉलम के लिए DEFAULT 0 का उपयोग करके NULL से पूरी तरह बचें
  • पोर्टेबिलिटी के लिए COALESCE() पसंद करें
  • जटिल अभिव्यक्तियों के लिए, CASE WHEN col IS NULL THEN 0 ELSE col END का उपयोग करें
  1. - MySQL में NULL और NOT NULL रिकॉर्ड वाले कॉलम से केवल NOT NULL मान प्रदर्शित करें

    इसके लिए आप IS NOT NULL प्रॉपर्टी का उपयोग कर सकते हैं। आइए पहले एक टेबल बनाते हैं: mysql> create table DemoTable1 ( DueDate date ); Query OK, 0 rows affected (0.00 sec) इन्सर्ट कमांड का उपयोग करके टेबल में कुछ रिकॉर्ड डालें: mysql> insert into DemoTable1 values(2019-09-10); Query OK, 1 r

  1. - MySQL स्टोर्ड प्रोसीजर में DECLARE वेरिएबल और गणितीय संक्रिया

    MySQL स्टोर्ड प्रोसीजर में DECLARE से स्थानीय वेरिएबल घोषित करें, SET से मान असाइन करें, और गणना करें। स्टोर्ड प्रोसीजर बनाएं mysql> DELIMITER // mysql> CREATE PROCEDURE declare_demo_sp() BEGIN DECLARE Value1 INT; DECLARE Value2 INT; SET Value1 = 100; SET V

  1. - MySQL में LPAD और INSERT INTO SELECT का उपयोग करके अग्रणी शून्य के साथ मान डालें

    MySQL में अग्रणी शून्य के साथ क्रमिक ID उत्पन्न करना LPAD() फ़ंक्शन और INSERT INTO SELECT का उपयोग करके आप एक कॉलम में अग्रणी शून्य के साथ स्वरूपित मान (जैसे 001, 002, 003) स्वचालित रूप से उत्पन्न और डाल सकते हैं। टेबल बनाना ); Query OK, 0 rows affected (0.00 sec) LPAD के साथ INSERT INTO SELECT क

© कॉपीराइट https://in.wsxdn.com सर्वाधिकार सुरक्षित
पहलूIFNULL(expr, val)COALESCE(val1, val2, ...)
तर्कठीक 22 या अधिक
मानकMySQL-विशिष्टANSI SQL मानक
प्रकार संचालनदूसरे तर्क का प्रकारसभी तर्कों का सामान्य प्रकार