Đối với trường hợp đơn giản này trong câu hỏi của bạn, chỉ cần sử dụng
IF ( @place IS NULL )
SELECT *
FROM table1
ELSE
SELECT *
FROM table1
WHERE country = @place
Nếu tình huống thực tế của bạn phức tạp hơn, bạn có thể sử dụng
select *
from Table1
where @place is null or [email protected]
option (recompile)
Lý do cần recompile
gợi ý là tránh có một gói duy nhất phục vụ cho cả hai trường hợp và thực hiện quét không cần thiết trong trường hợp bạn cung cấp một giá trị rõ ràng.
Chúng và các lựa chọn thay thế khác, chẳng hạn như tạo truy vấn động, được thảo luận chi tiết trong bài viết Tìm kiếm động Các điều kiện trong T-SQL