Ghép nối các bản ghi vào một dòng trong bảng SQL

 On Chủ Nhật, 31 tháng 5, 2015  

Ghép nối các bản ghi vào một dòng trong bảng SQL

Ví dụ chúng ta có bảng:
ProductID CustomerName
---------- -------------
1          Tuấn
1          Minh
1          Linh
2          Ngọc
2          Hiền
Bạn muốn kết quả ra như sau:
ProductID CustomerName
---------- -------------
1          Tuấn, Minh, Linh
2          Ngọc, Hiền
Bạn có thể dùng câu lệnh này:
SELECT DISTINCT C2.ProductID, 
    SUBSTRING(
        (
            SELECT ','+C1.CustomerName  AS [TEXT()]
            FROM dbo.Customer C1
            WHERE C1.ProductID = C2.ProductID
            ORDER BY C1.ProductID
            FOR XML PATH ('')
        ), 2, 1000) CustomerList
FROM dbo.Customer C2
Hoặc cũng có thể dùng lệnh sau trong trường hợp bạn không cần group by ProductID mà chỉ cần một danh sách khách hàng nối với nhau:
DECLARE @NAMES NVARCHAR(4000) 
SELECT @NAMES = COALESCE(@NAMES + ', ', '') + CustomerName 
FROM dbo.Customer
SELECT @NAMES



Bài viết liên quan:

Chia sẻ lên mạng xã hội | Về trang chủ | Tên miền | Tải máy ảo | Thủ thuật | SEO
Ghép nối các bản ghi vào một dòng trong bảng SQL 4.5 5 The Duong Chủ Nhật, 31 tháng 5, 2015 Ghép nối các bản ghi vào một dòng trong bảng SQL. Bài học SQL để nhớ tại duongngo blog Ví dụ chúng ta có bảng: ProductID CustomerName ---------- ------------- 1          Tuấn 1          Minh 1          Linh 2          Ngọc 2 ...


Không có nhận xét nào :

Đăng nhận xét

Hoan nghênh bạn để lại bình luận, nhưng đừng spam nhé :p Xem điều khoản

IELTS | TOEIC | TOEFL | OneDrive Unlimit | Bao súng da thật | Bao còng số 8

Back to top