Hãy nói rằng tôi có một bảng các địa chỉ khách hàng:Làm thế nào để chọn chỉ có các hàng đầu tiên cho mỗi giá trị duy nhất của một cột
CName | AddressLine
-------------------------------
John Smith | 123 Nowheresville
Jane Doe | 456 Evergreen Terrace
John Smith | 999 Somewhereelse
Joe Bloggs | 1 Second Ave
Trong bảng, một khách hàng như John Smith có thể có nhiều địa chỉ. Tôi cần truy vấn chọn cho bảng này để chỉ trả lại hàng đầu tiên được tìm thấy trong đó có các bản sao trong 'CName'. Đối với bảng này, nó sẽ trả về tất cả các hàng ngoại trừ số thứ 3 (hoặc số 1 - bất kỳ địa chỉ nào trong số hai địa chỉ này đều ổn nhưng chỉ có thể trả về một). Có từ khóa nào tôi có thể thêm vào truy vấn SELECT để lọc dựa trên liệu máy chủ đã xem giá trị cột trước đó chưa?
Sử dụng MIN với GROUP BY dường như hoạt động. – nuit9
Mặc dù nó có thể không được sử dụng theo cách này khi chọn 10 cột. Dường như nó không thể chấp nhận một cột của kiểu bit. – nuit9
@ nuit9: tất nhiên nó sẽ không hoạt động với bit và 10 cột. Cả hai sự kiện này đều không có trong câu hỏi của bạn. Bạn sẽ sử dụng kỹ thuật thứ 2 hoặc kỹ thuật của Ben Thul. Tôi trả lời những gì bạn hỏi cụ thể, với các gợi ý về cách giải quyết tổng quát hơn. – gbn