Kết hợp CONCAT() để nối chuỗi và IFNULL() để thay thế NULL thành chuỗi rỗng.
Tạo bảng và dữ liệu có 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'), ('Carol',NULL), (NULL,'Taylor'), (NULL,NULL);
Query OK, 4 rows affected
Nối tên đầy đủ, bỏ qua NULL
mysql> SELECT CONCAT(IFNULL(FirstName, ''), ' ', IFNULL(LastName, '')) AS FULL_NAME FROM DemoTable802;
Kết quả:
+------------+ | FULL_NAME | +------------+ | Adam Smith | | Carol | | Taylor | | | +------------+
Lưu ý: CONCAT() trả về NULL nếu bất kỳ đối số nào là NULL. Do đó bắt buộc dùng IFNULL() hoặc COALESCE().
Cách thay thế: CONCAT(COALESCE(FirstName,''), ' ', COALESCE(LastName,'')) - COALESCE chuẩn SQL, hỗ trợ nhiều đối số.
MySQL 8.0+: Có thể dùng CONCAT_WS(' ', FirstName, LastName) - tự bỏ qua NULL và dùng separator ' '.