За това бих се опитал да използвам по-формално решение за динамичен SQL, нещо като следното, като се имат предвид дефинираните от вас входни параметри
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)
ОТКАЗ ОТ ОТГОВОРНОСТ: Използването на Dynamic SQL НЕ е нещо, което трябва да се приема с лека ръка и трябва да се вземе подходящо внимание при ВСИЧКИ обстоятелства, за да се гарантира, че не сте отворени за атаки чрез SQL инжектиране, но за някои операции от тип динамично търсене това е една от най-елегантните маршрут.