2008-11-17 39 views
5

Tôi có kết quả được đặt trong MS-SQL trong một thủ tục được lưu trữ và cho phép nói rằng nó có một cột VARCHAR, nhưng nhiều hàng. Tôi muốn tạo một chuỗi phân tách bằng dấu phẩy chứa tất cả các giá trị này, Có cách nào dễ dàng để thực hiện việc này hay tôi sẽ phải duyệt từng kết quả và xây dựng chuỗi ký tự theo cách thủ công?Tạo chuỗi dài từ tập hợp kết quả

Tốt hơn là tôi muốn thực hiện việc này trong Thủ tục đã lưu trữ.

Trả lời

7

Dưới đây là một cách (sử dụng AdventureWorks2008 DB):

DECLARE @name varchar(255) 
SET @name = NULL 

select @Name = COALESCE(@Name + ',','') + LastName from Person.Person 
Select @name 

Và đây là khác (ví SQL 2005 trở đi):

SELECT 
    LastName + ',' 
FROM 
    Person.Person 
FOR XML PATH('') 

Trong cả hai trường hợp, bạn sẽ cần phải loại bỏ các dấu phẩy dấu ',' (có thể sử dụng hàm STUFF())

+0

Cách tôi tự khám phá: D – Sekhat

Các vấn đề liên quan