Trong mẹo này, chúng tôi xem xét các cách khác nhau để nối dữ liệu chuỗi SQL Server và cách xử lý các giá trị NULL khi nối chuỗi.

Bạn đang xem : sql nối các cột thành chuỗi

Bởi: | Cập nhật: 2021-07-21 | Nhận xét (17) | Liên quan: 1 | 2 | 3 | 4 | 5 | 6 | Thêm & gt; Hệ thống chức năng

Vấn đề

Tôi cần tạo nhãn gửi thư từ cơ sở dữ liệu Microsoft SQL Server của mình, vì vậy tôi đang sử dụng
dấu + để nối họ, tên đệm và họ với nhau. Các
vấn đề tôi thấy là tôi nhận được NULL cho rất nhiều hàng. Điều này khiến tôi không thể sản xuất
tên đầy đủ. Một số tùy chọn để giải quyết vấn đề này là gì? Thủ tục thanh toán
hướng dẫn này để tìm hiểu thêm về cách nối dữ liệu trong SQL Server với T-SQL
nối chuỗi.

Giải pháp

Trước SQL Server 2012, quá trình nối đã được thực hiện bằng cách sử dụng dấu cộng (+)
ký để nối các trường với nhau của nhiều kiểu dữ liệu khác nhau (varchar, char, int,
số, v.v.). Hạn chế của phương pháp này là nếu có
các trường bạn đang nối là NULL, giá trị chuỗi cuối cùng là NULL. Trong SQL Server 2012
và sau này có
Hàm CONCAT ()
thay thế NULL bằng một chuỗi trống. Hãy xem mẹo này để biết cách này
chức năng mới hoạt động và nó có thể mang lại lợi ích như thế nào trong mã của bạn.

Đối với bản trình diễn này, tôi sẽ sử dụng bảng Person.Person từ AdventureWorks2012
cơ sở dữ liệu để trình diễn các hàm SQL để tạo tên đầy đủ để tạo nhãn gửi thư. Ngày thứ nhất,
ví dụ sau là kỹ thuật cũ để nối các chuỗi bằng cách sử dụng dấu +
(điều hành nối):

Xem Thêm  Phạm vi và Chuỗi phạm vi trong JavaScript là gì? - phạm vi trong javascript là gì

LỰA CHỌN
    Tiêu đề,
    Họ,
    Tên đệm,
    Họ,
    Title + '' + FirstName + '' + MiddleName + '' + LastName dưới dạng MailingName
TỪ Người. Người

Như bạn có thể thấy trong ảnh chụp màn hình bên dưới MailingName là NULL cho bất kỳ hàng nào
có NULL cho bất kỳ cột tên nào. Các hàng duy nhất có MailingName được lấp đầy
có một giá trị cho tất cả các cột tiêu đề, họ, tên đệm và họ.
Điều này có thể được sửa chữa bằng cách gói

ISNULL (cột, ”)
xung quanh tất cả các cột trong trường được nối với tài khoản
cho bất kỳ giá trị nào có null, nhưng mã đó dài, lộn xộn và khó đọc.

Dưới đây là cú pháp mẫu đang sử dụng

ISNULL
cùng với dấu cộng để nối các giá trị. Các

Hàm ISNULL
sẽ thay thế các giá trị NULL bằng giá trị được ghi chú trong giây
, trong ví dụ này là một chuỗi rỗng.

LỰA CHỌN
    Tiêu đề,
    Họ,
    Tên đệm,
    Họ,
    ISNULL (Tiêu đề, '') + '' + ISNULL (Tên đầu tiên, '') + '' + ISNULL (Tên giữa, '') + '' + ISNULL (Tên cuối cùng, '') là MailingName
TỪ Người. Người

Như bạn có thể thấy trong ví dụ bên dưới, MailingName không còn NULL như trước nữa
đã thay thế các giá trị NULL bằng một chuỗi trống. Điều này đạt được giống như việc sử dụng

Hàm CONCAT ()
, nhưng yêu cầu nhiều mã và khả năng đọc hơn.

Bộ mã tiếp theo đang sử dụng

Hàm CONCAT ()
trong SQL Server 2012 và các phiên bản mới hơn với
Tuyên bố SELECT . Nó thay thế các giá trị NULL bằng một giá trị trống
chuỗi kiểu VARCHAR (1). Câu lệnh SQL này dễ đọc và dễ viết hơn nhiều khi bạn cần
để xử lý mã NULL tại chỗ và tạo một chuỗi đơn trong một
cột có khoảng trắng làm dấu phân cách.

LỰA CHỌN
    Tiêu đề,
    Họ,
    Tên đệm,
    Họ,
    CONCAT (Title, '', FirstName, '', MiddleName, '', LastName) dưới dạng MailingName
TỪ Người. Người

Nếu bạn thấy kết quả của việc này, tất cả các giá trị MailingName đều hiện diện, ngay cả khi chúng
có một số cột được đặt thành NULL.

Xem Thêm  Cách thay đổi màu phông chữ HTML - màu văn bản trong html

Như bạn có thể thấy, chức năng mới này rất tiện dụng và hoạt động khác nhiều so với
dạng cũ của nối. Thay vì đánh giá thành NULL nếu có nếu các cột
chứa các giá trị NULL,
Hàm CONCAT ()
thay thế nó bằng một chuỗi trống. Điều này rất hữu ích để mã hóa xung quanh giá trị NULL.

Các bước tiếp theo

Giới thiệu về tác giả

Bài viết cập nhật lần cuối: 2021-07-21


Xem thêm những thông tin liên quan đến chủ đề sql nối các cột thành chuỗi

SQL Query | Split concatenated string into columns | SplitString function

  • Tác giả: Learn at Knowstar
  • Ngày đăng: 2020-07-13
  • Đánh giá: 4 ⭐ ( 6690 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: This video discusses how to use the splitstring function in sql server to split a concatenated string into separate columns.

    Please do not forget to like, subscribe and share.

    For enrolling and enquiries, please contact us at
    Website – http://knowstar.org/
    Facebook – https://www.facebook.com/knowstartrainings/
    Linkedin – https://www.linkedin.com/company/knowstar-e-learning-solutions/?viewAsMember=true
    Email – learn@knowstar.org

Nối chuỗi trong sql sử dụng hàm CONCAT() và CONCAT_WS()

  • Tác giả: hoclaptrinh.vn
  • Đánh giá: 4 ⭐ ( 7515 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: 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

SQL CREATE TABLE:Hướng dẫn Cách thực hiện

  • Tác giả: vn.wsxdn.com
  • Đánh giá: 3 ⭐ ( 9534 lượt đánh giá )
  • Khớp với kết quả tìm kiếm:

Lập Trình Từ Đầu

  • Tác giả: laptrinhtudau.com
  • Đánh giá: 3 ⭐ ( 4522 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Nối chuỗi trong SQL – Lập Trình Từ Đầu 1 Hàm xử lý chuỗi SQL

Nối chuỗi CONCAT tùy biến tên cột với AS và toán tử số học SQL

  • Tác giả: xuanthulab.net
  • Đánh giá: 3 ⭐ ( 4558 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Sử dụng hàm nối chuỗi CONCAT ||, đặt tên cột mới cho biểu thức trả về với AS và các toán sử số học như cộng, trừ để tạo biểu thức SQL

CONCAT – Hàm nối chuỗi

  • Tác giả: www.sql.edu.vn
  • Đánh giá: 4 ⭐ ( 9265 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm CONCAT trong Microsoft SQL Server dùng để nối hai hay nhiều chuỗi thành một chuỗi duy nhất, nếu chuỗi NULL thì kết quả trống.

Hàm xử lý chuỗi trong SQL

  • Tác giả: vietjack.com
  • Đánh giá: 4 ⭐ ( 8615 lượt đánh giá )
  • Khớp với kết quả tìm kiếm: Hàm xử lý chuỗi trong SQL – Học SQL cơ bản nâng cao. Học SQL trực tuyến theo các bước từ Khái niệm về database, Cú pháp SQL, Truy vấn SELECT, Truy vấn INSERT, Lệnh DELETE, Truy vấn UPDATE, Ràng buộc (Constraint), Truy vấn DROP, Lệnh TRUNCATE, Từ khóa DISTINCT, Mệnh đề ORDER BY, Mệnh đề GROUP BY, Mệnh đề WHERE, Sử dụng Join, Sử dụng View, Sử dụng Sequence, Transaction, Hàm xử lý, Bảng tạm, Toán tử.

Xem thêm các bài viết khác thuộc chuyên mục: Kiến thức lập trình

Xem Thêm  javatpoint - liệt kê trong java là gì

By ads_php