Tôi có một quy trình được lưu trữ với một số tham số. Tôi muốn viết truy vấn của tôi để nó tham gia với một số bảng nhưng chỉ khi một tham số cụ thể có một giá trị. Lấy ví dụ sau: Tôi có một bảng Person. Ngoài ra còn có một bảng địa chỉ chứa các địa chỉ con người và một bảng nhóm chứa các nhóm người. Cả hai đều là một trong nhiều mối quan hệ với bảng Person. Thủ tục được lưu trữ của tôi có tham số @AddressID và tham số @GroupID.T-SQL - Cách viết tham gia có điều kiện
Truy vấn luôn trả về các trường từ bảng Person. Nếu không có tham số nào có giá trị thì truy vấn sẽ trả về tất cả các bản ghi từ bảng Person. Nếu tham số @AddressID được cung cấp thì nó sẽ chỉ trả về các bản ghi có bản ghi phù hợp trong bảng Địa chỉ và bỏ qua bảng Nhóm. Nếu tham số @GroupID được cung cấp thì nó sẽ chỉ trả về các bản ghi có bản ghi khớp trong bảng Nhóm và bỏ qua bảng Địa chỉ. Nếu cả hai tham số được cung cấp thì nó sẽ chỉ hiển thị các bản ghi có bản ghi khớp trong cả hai bảng. Có lý?
Có cách nào đơn giản để thực hiện việc này mà tôi bị thiếu không?
Cảm ơn, Corey
Cám ơn hỏi. Không ai khác có. Điều này khá hữu ích khi sử dụng LEFT JOIN chẳng hạn. – Jorge