Hiervoor zou ik proberen te gaan met een meer formele dynamische SQL-oplossing, zoiets als het volgende, gezien uw gedefinieerde invoerparameters
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)
DISCLAIMER: Het gebruik van dynamische SQL is NIET iets dat lichtvaardig moet worden opgevat, en in ALLE omstandigheden moet de juiste aandacht worden genomen om ervoor te zorgen dat u niet openstaat voor SQL-injectieaanvallen, maar voor sommige dynamische zoekbewerkingen is het een van de meest elegante route.