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

MySQL में NULL और गैर-NULL मानों वाले एकाधिक कॉलम से अधिकतम मान कैसे प्राप्त करें?

MySQL में एकाधिक कॉलम से प्रति पंक्ति अधिकतम मान प्राप्त करने के लिए GREATEST() के साथ COALESCE() का उपयोग करें। COALESCE NULL को डिफ़ॉल्ट मान (जैसे 0) में बदलता है।

फ़ंक्शन

  • COALESCE(val, default) - पहला गैर-NULL मान लौटाता है
  • GREATEST(val1, val2, ...) - सबसे बड़ा मान लौटाता है

उदाहरण

तालिका बनाएं और डेटा डालें:

mysql> CREATE TABLE DemoTable (Value1 INT, Value2 INT, Value3 INT);
mysql> INSERT INTO DemoTable VALUES 
    -> (NULL, 80, 76),
    -> (NULL, NULL, 100),
    -> (56, NULL, 45),
    -> (56, 120, 90);

डेटा

+--------+--------+--------+
| Value1 | Value2 | Value3 |
+--------+--------+--------+
| NULL   |     80 |     76 |
| NULL   | NULL   |    100 |
|     56 | NULL   |     45 |
|     56 |    120 |     90 |
+--------+--------+--------+

क्वेरी

mysql> SELECT GREATEST(
    ->     COALESCE(Value1, 0),
    ->     COALESCE(Value2, 0),
    ->     COALESCE(Value3, 0)
    -> ) FROM DemoTable;

परिणाम

+-------+
|  80   |
|  100  |
|   56  |
|  120  |
+-------+

पंक्ति-दर-पंक्ति व्याख्या

  1. GREATEST(0, 80, 76) = 80
  2. GREATEST(0, 0, 100) = 100
  3. GREATEST(56, 0, 45) = 56
  4. GREATEST(56, 120, 90) = 120

विकल्प

यदि सभी मान NULL हैं तो NULL चाहते हैं:

SELECT GREATEST(Value1, Value2, Value3) FROM DemoTable;
-- परिणाम: 80, 100, NULL, 120 (तीसरी पंक्ति NULL लौटाएगी)

नोट: GREATEST किसी भी तर्क के NULL होने पर NULL लौटाता है, इसलिए COALESCE आवश्यक है।

  1. - MySQL में UNION का उपयोग करके तीन कॉलम्स से विशिष्ट मानों को एक कॉलम में संयोजित करें

    MySQL में UNION का उपयोग करके कई कॉलम्स को एक कॉलम में संयोजित करना जब आपको एक ही टेबल के कई कॉलम्स से विशिष्ट (DISTINCT) मानों को एक ही परिणाम कॉलम में संयोजित करने की आवश्यकता होती है, तो UNION (या UNION ALL) का उपयोग करें। टेबल बनाना ); Query OK, 0 rows affected (0.69 sec) डेटा डालना (NULL मान

  1. - MySQL में दो तालिकाओं के अधिकतम मानों में से न्यूनतम मान कैसे प्राप्त करें?

    MySQL में UNION और सबक्वेरी का उपयोग करके दो तालिकाओं के अधिकतम मानों में से न्यूनतम मान प्राप्त किया जा सकता है। उदाहरण पहली तालिका: mysql> CREATE TABLE DemoTable1 (Value INT); mysql> INSERT INTO DemoTable1 VALUES (60), (78), (57); दूसरी तालिका: mysql> CREATE TABLE DemoTable2 (Value INT)

  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