Tôi đang tìm cách tổng hợp các chuỗi từ các hàng khác nhau thành một hàng duy nhất. Tôi đang tìm cách thực hiện việc này ở nhiều nơi khác nhau, vì vậy có một chức năng hỗ trợ việc này sẽ rất tốt. Tôi đã thử các giải pháp bằng cách sử dụng COALESCE
và FOR XML
, nhưng họ không cắt nó cho tôi.
Tổng hợp chuỗi sẽ làm một cái gì đó như sau:
id | Name Result: id | Names
-- - ---- -- - -----
1 | Matt 1 | Matt, Rocks
1 | Rocks 2 | Stylus
2 | Stylus
Tôi đã xem xét các hàm tổng hợp do CLR định nghĩa để thay thế COALESCE
và FOR XML
, nhưng rõ ràng SQL Azure không hỗ trợ nội dung do CLR định nghĩa, đó là một điều khó khăn đối với tôi vì tôi biết có thể sử dụng nó sẽ giải quyết được rất nhiều vấn đề cho tôi.
Có workaround có thể, hoặc các phương pháp tối ưu tương tự (mà có thể không được như tối ưu như CLR, nhưng hey Tôi sẽ đưa những gì tôi có thể nhận được) mà tôi có thể sử dụng để tổng hợp công cụ của tôi?
for xml
cho thấy mức sử dụng 25% về hiệu suất truy vấn (phần lớn truy vấn!)
for xml path
truy vấn. Một số nhanh hơn những người khác. Nó có thể phụ thuộc vào dữ liệu của bạn nhưng những thứ distinct
đang sử dụng theo kinh nghiệm của tôi chậm hơn so với sử dụng group by
. Và nếu bạn đang sử dụng .value('.', nvarchar(max))
để có được các giá trị nối bạn nên thay đổi điều đó để.value('./text()[1]', nvarchar(max))
for xml
không làm việc cho bạn?