Hiện nay tôi có một proc lưu trữ, trong đó có một chuỗiShorthand IF báo cáo trong sql
@vari as varchar(30)
if @vari is null
SELECT * FROM TABLE
else
SELECT * FROM TABLE WHERE col = @vari
endif
là có cách nào để nội tuyến các câu lệnh if, do đó không tuyên bố 2 chọn của chỉ vì 1 param?
Bạn cũng có thể làm điều này với một tuyên bố trường hợp, nó không phải là càng ngắn càng các câu trả lời dưới đây nhưng trong một số trường hợp, nó là tốt hơn . – Purplegoldfish
Tôi sẽ không thay đổi mã của bạn, bởi vì trong hầu hết các trường hợp, sql sẽ tạo ra kế hoạch thực hiện tốt hơn nhiều so với các tiêu chí 'hoặc' kết hợp. –