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

MySQL में ISNULL() का उपयोग करके प्रत्येक पंक्ति में NULL मानों की संख्या गिनना

MySQL में ISNULL() फ़ंक्शन का उपयोग करके प्रत्येक पंक्ति में NULL मान वाले कॉलम की संख्या गिनें।

उदाहरण: टेबल बनाना और डेटा डालना

mysql> CREATE TABLE DemoTable (
    -> Number1 INT,
    -> Number2 INT
    -> );
Query OK, 0 rows affected (0.59 sec)
mysql> INSERT INTO DemoTable VALUES(10, NULL), (NULL, NULL), (29, 98), (NULL, 119);

सभी रिकॉर्ड देखना

mysql> SELECT * FROM DemoTable;

आउटपुट

+---------+---------+
| Number1 | Number2 |
+---------+---------+
| 10      | NULL    |
| NULL    | NULL    |
| 29      | 98      |
| NULL    | 119     |
+---------+---------+
4 rows in set (0.00 sec)

प्रति पंक्ति NULL गिनती की क्वेरी

mysql> SELECT Number1, Number2, ISNULL(Number1) + ISNULL(Number2) AS NumberOfNULLs FROM DemoTable;

आउटपुट

+---------+---------+---------------+
| Number1 | Number2 | NumberOfNULLs |
+---------+---------+---------------+
| 10      | NULL    | 1             |
| NULL    | NULL    | 2             |
| 29      | 98      | 0             |
| NULL    | 119     | 1             |
+---------+---------+---------------+
4 rows in set (0.00 sec)

व्याख्या:

  • ISNULL(expr) - expr NULL हो तो 1, अन्यथा 0 लौटाता है
  • कई कॉलम के लिए ISNULL परिणामों को जोड़कर प्रति पंक्ति कुल NULL गिनती प्राप्त करें

सामान्यीकृत दृष्टिकोण (कई कॉलम के लिए):

SELECT *,
    (CASE WHEN Col1 IS NULL THEN 1 ELSE 0 END) +
    (CASE WHEN Col2 IS NULL THEN 1 ELSE 0 END) +
    (CASE WHEN Col3 IS NULL THEN 1 ELSE 0 END) AS NullCount
FROM DemoTable;

MySQL 8.0+ विकल्प: (Col1 IS NULL) + (Col2 IS NULL) + ... - बूलियन TRUE=1, FALSE=0 का सीधे उपयोग।

ISNULL vs COALESCE: ISNULL() केवल जांचता है (0/1 लौटाता है), COALESCE() पहला गैर-NULL मान लौटाता है।

  1. Java का उपयोग करके MySQL टेबल में कॉलम की संख्या गिनना Java का उपयोग करके MySQL टेबल में कॉलम की संख्या गिनना

    ResultSetMetaData का उपयोग करके कॉलम मेटाडेटा प्राप्त करना इसके लिए ResultSetMetaData का उपयोग करें। पहले एक टेबल बनाते हैं: CREATE TABLE DemoTable ( StudentId INT NOT NULL AUTO_INCREMENT PRIMARY KEY, StudentFirstName VARCHAR(20), StudentLastName VARCHAR(20) ); Query OK, 0 rows affect

  1. - MySQL में COALESCE से NULL पंक्ति के साथ कॉलम गुणा करें

    जब किसी संख्यात्मक कॉलम में NULL हो, तो गणना (जैसे गुणा) का परिणाम NULL हो जाता है। COALESCE() का उपयोग करके NULL को डिफ़ॉल्ट मान (जैसे 1) से बदल सकते हैं। टेबल बनाएं mysql> CREATE TABLE DemoTable1842 ( NumberOfItems INT, Amount INT ); डेटा डालें (एक पंक्ति में NULL) mysql> INSERT IN

  1. - MySQL में 'X दिन पहले' टाइमस्टैम्प के साथ पंक्ति डालें

    CURRENT_TIMESTAMP और RAND() से यादृच्छिक भूतपूर्व तारीख डालें वर्तमान समय से यादृच्छिक दिन पहले की टाइमस्टैम्प डालने के लिए CURRENT_TIMESTAMP - INTERVAL ABS(RAND() * 100) DAY का उपयोग करें। टेबल बनाएं: mysql> create table DemoTable1983 ( DueDate timestamp ); Query OK, 0 rows affected (0.00 sec) ड