2010-12-12 39 views

Trả lời

3

Chức năng tổng hợp cho SQL Server tạo danh sách giá trị được phân tách bằng dấu phẩy.

Title 
----------------- 
The Hobbit 
The Two Towers  --> The Hobbit, The Two Towers, Leaf by Niggle 
Leaf by Niggle 

Dưới đây là thực hiện của tôi: A SQL CLR user-defined aggregate - notes on creating and debugging

+0

Rất hữu ích. Tôi cũng vậy. Tôi gọi nó làCSV, nhưng tôi không thực sự thích cái tên đó. Bạn đã gọi cho bạn là gì? Bất kỳ ý tưởng tốt hơn? –

+0

@PAUL Mansour Tôi đặt tên là 'Concat' (viết tắt của * concatenate *), nhưng nó cũng không phải là một tên hoàn hảo. –

+1

SQL Server có một số hiệu suất chuỗi nối thú vị. Dưới đây là một số thử nghiệm hiệu suất giữa 'select @var = @var + cột kiểu SQL và một tổng hợp do người dùng định nghĩa bằng cách sử dụng .NET' StringBuilder': [graphs] (http://imgur.com/a/MRcha) dựa trên SQL concat được chậm hơn đáng kể khi chiều dài chuỗi tổng cộng vượt quá 500 nghìn ký tự. – geofftnz

1

Có. Trong Oracle tôi đã thực hiện một loại group_concat vì nó không có sẵn trong Oracle. Tôi đã thực hiện một vài phiên bản khác nhau mà làm một concat đơn giản với các chuỗi phân cách bằng dấu phẩy. Khác làm như vậy, chỉ được sắp xếp. Và có một số khác không sử dụng dấu phẩy, nhưng một ký tự đặc biệt để kết quả có thể được xử lý dễ dàng hơn khi các giá trị có thể chứa dấu phẩy.

1
  1. Weighted Average

  2. PercentAcross - Đây là tổng của X nơi một điều kiện là đúng, chia cho tổng của X.

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