কম্পিউটার টিউটোরিয়াল

MySQL-এ CASE WHEN ব্যবহার করে NULL ও খালি স্ট্রিং-এর সংখ্যা আলাদা আলাদা বের করা

একটি কলামে NULL এবং খালি স্ট্রিং ('') উভয় থাকতে পারে। তাদের আলাদা আলাদা গণনা করতে CASE WHEN এবং UNION ALL ব্যবহার করা হয়।

টেবিল তৈরি ও ডেটা ইনসার্ট

mysql> create table DemoTable781 (Name varchar(100));
Query OK, 0 rows affected (0.66 sec)
mysql> insert into DemoTable781 values('');
Query OK, 1 row affected (0.29 sec)
mysql> insert into DemoTable781 values('Chris');
Query OK, 1 row affected (0.12 sec)
mysql> insert into DemoTable781 values('');
Query OK, 1 row affected (0.14 sec)
mysql> insert into DemoTable781 values(NULL);
Query OK, 1 row affected (0.13 sec)
mysql> insert into DemoTable781 values(NULL);
Query OK, 1 row affected (0.16 sec)
mysql> insert into DemoTable781 values('');
Query OK, 1 row affected (0.19 sec)
mysql> insert into DemoTable781 values(NULL);
Query OK, 1 row affected (0.28 sec)

রেকর্ড দেখানো

mysql> select * from DemoTable781;

আউটপুট:

+-------+
| Name  |
+-------+
|       |
| Chris |
|       |
| NULL  |
| NULL  |
|       |
| NULL  |
+-------+
7 rows in set (0.00 sec)

NULL ও খালি স্ট্রিং আলাদা আলাদা গণনা

mysql> (SELECT SUM(CASE WHEN Name IS NULL THEN 1 ELSE 0 END) AS NullCountAndEmptyCount FROM DemoTable781)
UNION ALL
(SELECT SUM(CASE WHEN Name = '' THEN 1 ELSE 0 END) AS NullCountAndEmptyCount FROM DemoTable781);

ফলাফল:

+------------------------+
| NullCountAndEmptyCount |
+------------------------+
| 3                      |
| 3                      |
+------------------------+
2 rows in set (0.00 sec)

ব্যাখ্যা

  • প্রথম কোয়েরি: IS NULL চেক করে NULL সংখ্যা (৩টি)।
  • দ্বিতীয় কোয়েরি: = '' চেক করে খালি স্ট্রিং সংখ্যা (৩টি)।
  • UNION ALL ফলাফল একসাথে যোড় করে (ডুপ্লিকেট সরায় না)।

একই কোয়েরিতে উভয় পাওয়ার উপায়

SELECT 
    SUM(CASE WHEN Name IS NULL THEN 1 ELSE 0 END) AS NullCount,
    SUM(CASE WHEN Name = '' THEN 1 ELSE 0 END) AS EmptyCount
FROM DemoTable781;

ফলাফল: NullCount=3, EmptyCount=3 (একটি রোতে দুটি কলাম)।

  1. MySQL-এ টাইনি ইন্ট কলাম থেকে ০ এবং ১ এর সংখ্যা আলাদা দুটি কলামে দেখানো

  2. MySQL-এ LEAST() ফাংশন ব্যবহার করে একাধিক কলাম থেকে ন্যূনতম মান বের করা

  3. Java-এ JDBC ResultSetMetaData ব্যবহার করে MySQL টেবিলের কলাম সংখ্যা বের করা

  4. MySQL-এ নির্দিষ্ট তারিখের রেকর্ড গণনা করা (COUNT + DATE)