Đối với điều này, tôi sẽ cố gắng sử dụng giải pháp SQL động chính thức hơn, giống như sau, với các tham số đầu vào đã xác định của bạn
DECLARE @SQL VARCHAR(MAX)
SET @SQL = '
SELECT
FROM
database.dbo.table T
WHERE
T.deleted = ''n'' '
--Do your conditional stuff here
IF @searchf1 <> '' THEN
SET @SQL = @SQL + ' AND fieldf1 = ' + @searchf1 + ' AND fieldr1 = ' + @searchr1 + ''' '
--Finish the query
SET @SQL = @SQL + ' ORDER BY xxx'
EXEC(@SQL)
TUYÊN BỐ TỪ CHỐI: Việc sử dụng SQL động KHÔNG phải là điều gì đó nên được xem nhẹ và cần cân nhắc thích hợp trong TẤT CẢ các trường hợp để đảm bảo rằng bạn không bị tấn công SQL injection, tuy nhiên, đối với một số hoạt động kiểu tìm kiếm động, nó là một trong những thao tác tốt nhất tuyến đường.