Hãy tính đến điều này khi bạn nối các chuỗi ký tự với các giá trị cột có thể chứa NULL
SELECT CONCAT['AB', NULL, 'EF']; -- Result: NULL
Bạn có thể sử dụng hàm IFNULL để thay thế các giá trị NULL trước khi nối
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;
Ngoài ra, hàm CONCAT_WS coi NULL là '' [chuỗi trống] và cho phép sử dụng '' làm dấu phân cách
SELECT CONCAT_WS['', 'AB', NULL, 'CD']; -- Result: ABCD
Toán tử nối chuỗi
Đặt sql_mode thành PIPES_AS_CONCAT hoặc ANSI cho phép. để nối các chuỗi
-- By default, || is synonym to OR logical operator SELECT 'A' || 'B'; -- Result: 0 SET sql_mode = PIPES_AS_CONCAT; -- Now we can use || to concatenate strings SELECT 'A' || 'B' || 'C'; -- Result: ABC -- If any value is NULL, the result is NULL SELECT 'A' || NULL || 'C'; -- Result: NULL
Nối chuỗi trong các cơ sở dữ liệu khác
tiên tri
Toán tửNULL là '' [chuỗi trống]CONCAT[s1, s2]2 chỉ đối sốNULL là ''Máy chủ SQL
+ Toán tửNếu bất kỳ giá trị nào là NULL, kết quả là NULL, trừ khi CONCAT_NULL_YIELDS_NULL là OFF+= OperatorTransact/SQL onlys1 += s2 bằng s1 = s1 + s2PostgreSQL
Toán tửNếu bất kỳ giá trị nào là NULL, kết quả là NULLCONCAT[s1, s2,…]NULL là ''CONCAT_WS[sep, s1, s2,…]Cho phép chỉ định dấu phân cáchNULL là ''nối chuỗi
tiên tri
Oracle hỗ trợ hàm CONCAT, nhưng nó chỉ có thể chấp nhận 2 đối số. Đối với hơn 2 đối số, việc chuyển đổi thành. cần có toán tử nối chuỗi hoặc lệnh gọi CONCAT lồng nhau
-- Concatenate 2 strings SELECT CONCAT['AB', 'CD']; -- Concatenate more than 2 strings SELECT 'AB' || 'CD' || 'EF'; -- or SELECT CONCAT[CONCAT['AB', 'CD'],'EF'] FROM dual;
Máy chủ SQL
SQL Server không hỗ trợ hàm CONCAT nên việc chuyển đổi sang + toán tử nối chuỗi là bắt buộc
aHướng dẫn SQL này tập trung vào Nối chuỗi SQL trong MySQL và cung cấp các giải thích, ví dụ và bài tập. Đối với các bài tập của bài học này, hãy sử dụng liên kết này
Hướng dẫn này là một phần của một số bài viết giải thích cách viết các truy vấn cơ bản trong MySQL. Để đọc các bài viết bổ sung về chủ đề này, vui lòng sử dụng các liên kết sau
- Viết câu lệnh SQL SELECT cơ bản
- Toán tử số học SQL
- Bí danh cột SQL
- Nối chuỗi SQL
- Từ khóa SQL DISTINCT
Nối chuỗi MySQL
Nối chuỗi MySQL cho phép bạn nối một chuỗi vào cuối chuỗi khác. Để hiển thị nội dung của hai cột trở lên dưới tên của một cột, bạn có thể sử dụng hàm Concat của MySQL theo cú pháp sau
CONCAT[String1,String2,String3...]
Ví dụ: để hiển thị tên cuốn sách cùng với giá của nó, hãy sử dụng câu lệnh MySQL SQL sau
SELECT CONCAT[bookName,bookPrice] FROM books
Kết quả
CONCAT[bookName, bookPrice] -------------------------- Dune30
MySQL – Nối hai trường với một khoảng trắng
Mặc dù trong ví dụ trước, kết quả được yêu cầu – hợp nhất hai giá trị từ hai cột khác nhau – đã đạt được, nhưng kết quả cuối cùng vẫn khá khó đọc, vì chúng tôi không có dấu cách giữa tên sách và giá sách. Do đó, bạn cũng nên nối một khoảng trắng [‘ ‘]
________số 8
Kết quả
CONCAT[bookName, ' ' , bookPrice] --------------------------------- Dune 30
Sử dụng bí danh cột MySQL
Để làm cho kết quả dễ đọc hơn, hãy sử dụng n MySQL Column Aliases
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;0
Kết quả
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;1
MySQL – Truy xuất các cột bổ sung
Trong MySQL, nếu sau hoặc trước đoạn nối này, bạn muốn hiển thị một cột riêng biệt bổ sung, chỉ cần sử dụng dấu phẩy [,]
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;2
Kết quả
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;3
MySQL – Nối nhiều hơn hai giá trị
Trong MySQL có thể tạo các phép nối phức tạp hơn theo yêu cầu
SELECT name, CONCAT['Price is ', IFNULL[price, 'N/A']] FROM prices;4
Kết quả
SELECT CONCAT[bookName,bookPrice] FROM books0
Sử dụng CONCAT_WS
Một hàm MySQL khác được sử dụng để nối chuỗi là CONCAT_WS, hàm này là một dạng đặc biệt của hàm CONCAT và ngoài chức năng nối chuỗi, với CONCAT_WS, bạn có thể xác định [hoặc nhiều ký tự] ký tự nào sẽ được sử dụng làm dấu phân cách
Ví dụ
SELECT CONCAT[bookName,bookPrice] FROM books1
UpScale Analytics là một trong những nền tảng lớn nhất trên thế giới để học SQL bằng cách thực hành, bao gồm hơn 300 bài tập SQL ở các cấp độ khác nhau [bao gồm cả giải pháp], theo chủ đề, trên hơn 100 bộ dữ liệu khác nhau. Hơn…