NULL মান থাকা কলামগুলোকে CONCAT() দিয়ে যোড় করলে পুরো ফলাফল NULL হয়। এটিকে এড়াতে IFNULL() বা COALESCE() ব্যবহার করে NULL-কে খালি স্ট্রিং-এ রূপান্তর করা হয়।
টেবিল তৈরি ও ডেটা ইনসার্ট
mysql> CREATE TABLE DemoTable802 (FirstName VARCHAR(100), LastName VARCHAR(100)); Query OK, 0 rows affected (1.01 sec)
mysql> INSERT INTO DemoTable802 VALUES ('Adam', 'Smith');
Query OK, 1 row affected (0.23 sec)
mysql> INSERT INTO DemoTable802 VALUES ('Carol', NULL);
Query OK, 1 row affected (0.15 sec)
mysql> INSERT INTO DemoTable802 VALUES (NULL, 'Taylor');
Query OK, 1 row affected (0.09 sec)
mysql> INSERT INTO DemoTable802 VALUES (NULL, NULL);
Query OK, 1 row affected (0.21 sec)
রেকর্ড দেখানো
mysql> SELECT * FROM DemoTable802;
আউটপুট:
+-----------+----------+ | FirstName | LastName | +-----------+----------+ | Adam | Smith | | Carol | NULL | | NULL | Taylor | | NULL | NULL | +-----------+----------+ 4 rows in set (0.00 sec)
IFNULL দিয়ে NULL বাদ দিয়ে ক্যাটেনেট
mysql> SELECT CONCAT(IFNULL(FirstName, ''), ' ', IFNULL(LastName, '')) AS FULL_NAME FROM DemoTable802;
ফলাফল:
+------------+ | FULL_NAME | +------------+ | Adam Smith | | Carol | | Taylor | | | +------------+ 4 rows in set (0.00 sec)
বेहতর পদ্ধতি: COALESCE()
COALESCE() একাধিক আর্গুমেন্ট নেয় এবং প্রথম নন-NULL মান রিটার্ন করে:
SELECT CONCAT(COALESCE(FirstName, ''), ' ', COALESCE(LastName, '')) AS FULL_NAME FROM DemoTable802;
TRIM দিয়ে এক্সট্রা স্পেস মুছে ফেলা
SELECT TRIM(CONCAT(COALESCE(FirstName, ''), ' ', COALESCE(LastName, ''))) AS FULL_NAME FROM DemoTable802;
এটি শুরু ও শেষের স্পেস মুছে দেবে (Carol-এ ট্রেইলিং স্পেস থাকবে না)।