Til dette ville jeg prøve at gå med en mere formel Dynamic SQL-løsning, noget i stil med følgende, givet dine definerede inputparametre
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)
ANSVARSFRASKRIVELSE: Brugen af Dynamic SQL er IKKE noget, der skal tages let på, og der bør tages passende hensyn under ALLE omstændigheder for at sikre, at du ikke er åben for SQL-injektionsangreb, men for nogle dynamiske søgetyper er det en af de mest elegante rute.