Tôi có một bảng trong SQL Server 2000 mà tôi đang cố gắng truy vấn theo một cách cụ thể. Cách tốt nhất để hiển thị điều này là với dữ liệu mẫu.Truy vấn SQL trả về một bản ghi duy nhất cho mỗi giá trị duy nhất trong một cột
Nầy, [Addresses]
:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Bob 234 Other Street Fargo ND
Jim 345 Main Street St Louis MO
Đây thực sự là một ví dụ đơn giản về cấu trúc của bảng thực tế. Cấu trúc của bảng hoàn toàn nằm ngoài tầm kiểm soát của tôi. Tôi cần một truy vấn sẽ trả về một địa chỉ duy nhất cho mỗi tên. Không quan trọng địa chỉ nào, chỉ là chỉ có một địa chỉ. Kết quả có thể là thế này:
Name Street City State
--------------------------------------------------------
Bob 123 Fake Street Peoria IL
Jim 345 Main Street St Louis MO
Tôi tìm thấy một câu hỏi tương tự here, nhưng không ai trong số các giải pháp cho công việc trong trường hợp của tôi, vì tôi không có quyền truy cập vào CROSS APPLY
, và kêu gọi MIN()
trên mỗi cột sẽ kết hợp địa chỉ khác nhau lại với nhau , và mặc dù tôi không quan tâm đến bản ghi nào được trả lại, nó phải là một hàng nguyên vẹn, không phải là một kết hợp của các hàng khác nhau.
Đề xuất thay đổi cấu trúc bảng sẽ không giúp tôi. Tôi đồng ý rằng bảng này là khủng khiếp, (nó tồi tệ hơn được hiển thị ở đây) nhưng đây là một phần của một cơ sở dữ liệu ERP lớn mà tôi không thể thay đổi.
Có khoảng 3000 bản ghi trong bảng này. Không có khóa chính.
Bất kỳ ý tưởng nào?
Bạn có thể đưa ra ý tưởng về số lượng bản ghi trong bảng của mình không? Tôi có một số ý tưởng về việc này nhưng có thể không nhanh nếu có hàng nghìn triệu bản ghi. –
Bạn có bất kỳ khóa chính nào trên bảng này không? –
~ 3000 hồ sơ và không có PK, đủ ngạc nhiên. Tôi đã thêm thông tin này vào câu hỏi. – recursive