sql >> Base de Datos >  >> RDS >> Sqlserver

pasar un operando como un parámetro sql

Suponiendo que todos los números enteros positivos <2 mil millones, esta solución evita consultas múltiples y SQL dinámico. OPTION (RECOMPILE) ayuda a frustrar el rastreo de parámetros, pero esto puede no ser necesario según el tamaño de la tabla, la configuración de parámetros y la configuración "optimizar para carga de trabajo ad hoc".

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);