Hei!Hàm tổng hợp Sql để lấy danh sách
Làm cách nào để tạo một hàm tổng hợp để có được danh sách các giá trị tổng hợp.
đưa ra:
key value
Andrei 1
Andrei 2
Andrei 3
Mihai 4
Mihai 5
Mihai 6
Tôi muốn
key list
Andrei 1,2,3
Mihai 4,5,6
Hei!Hàm tổng hợp Sql để lấy danh sách
Làm cách nào để tạo một hàm tổng hợp để có được danh sách các giá trị tổng hợp.
đưa ra:
key value
Andrei 1
Andrei 2
Andrei 3
Mihai 4
Mihai 5
Mihai 6
Tôi muốn
key list
Andrei 1,2,3
Mihai 4,5,6
tôi đã sử dụng bài viết này một lần để cho một điều chính xác:
http://www.simple-talk.com/sql/t-sql-programming/concatenating-row-values-in-transact-sql/
Bạn cần mô phỏng chức năng group_concat của MySQL.
Kiểm tra this article để biết thêm thông tin.
MS SQL giải pháp: [Lưu ý: Giải pháp này chỉ hoạt động trên SQL 2005 và sau đó. Câu hỏi gốc không chỉ định phiên bản đang sử dụng.]
SELECT
key
, STUFF((SELECT ',' + CAST([value] AS nvarchar(max)) FROM <#Table#> WHERE (key = Results.key) FOR XML PATH ('')),1,2,'') AS NameValues
FROM <#Table#> Results
GROUP BY key
và những điều tốt đẹp về giải pháp đó là nó không thổi lên nếu bạn có ký tự xml không hợp lệ trong chất nền của bạn .. oh rất tiếc, có nó. – briantyler
theo như tôi thấy giá trị chỉ là int, do đó, sẽ không có vấn đề – alexsuslin
Hôm nay nó là một int, ngày mai nó là một chuỗi chứa ampersands ... – briantyler
Tôi đã nhảy để tạo một hàm tổng hợp tùy chỉnh như sum(). Có thể không? –
Tôi đã tìm thấy nó trong bài viết của bạn. Cảm ơn bạn –