Sqlserver
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Sqlserver

Cách nối các chuỗi trong SQL Server với CONCAT ()

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

  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. 7645 Vị ngữ toàn văn bản rỗng hoặc trống

  2. có thể chọn EXISTS trực tiếp như một chút không?

  3. Hồ sơ truy vấn 101 - Có, nó thực sự có thể cải thiện hiệu suất máy chủ SQL của bạn

  4. Làm cách nào để sử dụng hàm CONCAT trong SQL Server 2008 R2?

  5. Ý nghĩa của 1/1/1753 trong SQL Server là gì?