Om man antar att alla positiva heltal <2 miljarder, undviker denna lösning flera frågor och dynamisk SQL. OPTION (RECOMPILE)
hjälper till att förhindra parametersniffning, men detta kanske inte är nödvändigt beroende på tabellens storlek, dina parameterinställningar och inställningen "optimera för ad hoc-arbetsbelastning".
WHERE [Amount] BETWEEN
CASE WHEN @operand LIKE '<%' THEN 0
WHEN @operand = '>' THEN @operant + 1
ELSE @operant END
AND
CASE WHEN @operand LIKE '>%' THEN 2147483647
WHEN @operand = '<' THEN @operant - 1
ELSE @operant END
OPTION (RECOMPILE);