Trong SQL chúng ta có thể sử dụng 2 hàm CONCAT() và CONCAT_WS() để nối chuỗi. Nếu chưa hiểu rõ lắm về cách dùng 2 hàm này trong SQL các bạn hãy theo dõi bài viết này nhé
Hàm CONCAT trong SQL được sử dụng để nối hai chuỗi để tạo thành một chuỗi đơn.
Bạn thử ví dụ sau:
SQL> SELECT CONCAT('FIRST ', 'SECOND');
+----------------------------+
| CONCAT('FIRST ', 'SECOND') |
+----------------------------+
| FIRST SECOND |
+----------------------------+
1 row in set (0.00 sec)
Để hiểu rõ hơn về hàm CONCAT, bạn theo dõi bảng NHANVIEN có các bản ghi sau:
SQL> SELECT * FROM NHANVIEN;
+------+------+------------+--------------------+
| ID | NAME | Ngay_Bat_Dau | So_Chiec |
+------+------+------------+--------------------+
| 1 | Hoang | 2007-01-24 | 250 |
| 2 | Nam | 2007-05-27 | 220 |
| 3 | Viet | 2007-05-06 | 170 |
| 3 | Viet | 2007-04-06 | 100 |
| 4 | Huong | 2007-04-06 | 220 |
| 5 | Xuan | 2007-06-06 | 300 |
| 5 | Xuan | 2007-02-06 | 350 |
+------+------+------------+--------------------+
7 rows in set (0.00 sec)
Bây giờ giả sử, dựa trên bảng trên, bạn muốn nối tất cả ID
, TEN
, và Ngay_Bat_Dau
, thì bạn có thể thực hiện điều này bởi sử dụng lệnh:
SQL> SELECT CONCAT(ID, TEN, Ngay_Bat_Dau)
-> FROM NHANVIEN;
+-----------------------------+
| CONCAT(ID, TEN, Ngay_Bat_Dau) |
+-----------------------------+
| 1Hoang2007-01-24 |
| 2Nam2007-05-27 |
| 3Viet2007-05-06 |
| 3Viet2007-04-06 |
| 4Huong2007-04-06 |
| 5Xuan2007-06-06 |
| 5Xuan2007-02-06 |
+-----------------------------+
7 rows in set (0.00 sec)
Hàm concat này khác với + chuỗi thông thường ở chỗ nếu dùng với + chuỗi thông thường, 1 trong 2 vế là null thì giá trị sau khi cộng chuỗi là null. Còn với concat thì vẫn cộng bình thường
Hàm CONCAT_WS() là viết tắt của Concatenate With Separator và là một dạng hàm CONCAT() đặc biệt. Tham số đầu tiên là Separator
cho các tham số còn lại. Separator
này được thêm vào giữa các chuỗi để được nối chuỗi. Separator có thể là một chuỗi. Nếu Separator là NULL thì kết quả trả về là NULL.
SQL> SELECT CONCAT_WS(',','First name','Last Name' );
+---------------------------------------------------------+
| CONCAT_WS(',','First name','Last Name' ) |
+---------------------------------------------------------+
| First name, Last Name |
+---------------------------------------------------------+
1 row in set (0.00 sec)
Unpublished comment
Viết câu trả lời