Trong SQL Server, bạn có thể nối hai hoặc nhiều chuỗi bằng cách sử dụng T-SQL CONCAT()
hàm số. Bạn cũng có thể sử dụng toán tử nối chuỗi của SQL Server (+
) để làm điều tương tự. Cả hai đều được giải thích ở đây.
Trong SQL Server (và trong bất kỳ môi trường lập trình máy tính nào), nối chuỗi là thao tác nối các chuỗi ký tự từ đầu đến cuối.
Đây là một ví dụ:
SELECT CONCAT('Peter', ' ', 'Griffin') AS 'Full Name';
Kết quả:
Full Name ------------- Peter Griffin
Lưu ý rằng tôi thực sự đã nối 3 chuỗi ở đây. Tôi đã nối tên, họ với một khoảng trắng.
Nếu tôi không thêm không gian, nó sẽ trông như thế này:
SELECT CONCAT('Peter', 'Griffin') AS 'Full Name';
Kết quả:
Full Name ------------ PeterGriffin
Có thể có hoặc không phải là kết quả bạn đang tìm kiếm.
Vì vậy, nếu chúng ta áp dụng điều này cho cơ sở dữ liệu, thì truy vấn có thể trông giống như sau:
SELECT CONCAT(FirstName, ' ', LastName) AS 'Full Name' FROM Individuals WHERE IndividualId = '1';
Kết quả:
Full Name ------------- Peter Griffin
Nếu bạn đang nối nhiều hơn hai chuỗi và bạn cần một khoảng trắng (hoặc dấu phân tách khác), hãy xem xét sử dụng CONCAT_WS()
hàm số. Điều này cho phép bạn chỉ định một dấu phân tách sẽ được sử dụng giữa mỗi chuỗi. Bạn chỉ cần chỉ định dấu phân tách một lần và nó được sử dụng trên mọi chuỗi được nối, do đó giúp bạn không phải nhập lại giữa mỗi chuỗi.
Đối số NULL
Nếu bạn đã quen thuộc với MySQL, bạn có thể biết rằng nó cũng có CONCAT()
hàm số. Tuy nhiên, một điểm khác biệt giữa CONCAT()
của SQL Server và CONCAT()
của MySQL là cách chúng xử lý NULL
đối số.
Trong MySQL, CONCAT()
hàm trả về NULL
nếu bất kỳ đối số nào là NULL
. Tuy nhiên, trong SQL Server, bạn có thể thêm NULL
không có đối số dẫn đến NULL
kết quả.
MySQL
Đây là những gì MySQL thực hiện:
SELECT CONCAT('Homer', NULL, 'Simpson') AS 'Full Name';
Kết quả:
+-----------+ | Full Name | +-----------+ | NULL | +-----------+
Máy chủ SQL
Đây là những gì SQL Server thực hiện:
SELECT CONCAT('Peter', NULL, 'Griffin') AS 'Full Name';
Kết quả:
Full Name ------------ PeterGriffin
Một cách khác để ghép nối - Toán tử ghép chuỗi (+
)
SQL Server cung cấp một cách khác để nối các chuỗi. Bạn có thể sử dụng +
toán tử nối chuỗi.
SELECT 'Peter' + ' ' + 'Griffin' AS 'Full Name';
Kết quả:
Full Name ------------- Peter Griffin