私が興味を持っていることの 1 つは、これを自分でスクリプト化しているのか、それとも UI コンポーネントに実行させているのかということです。後者の主な問題は、たとえばユーザーが「<40」とだけ入力できるようにすると、SQL インジェクションの問題が発生することです。
それを防ぎ、チェックしている列に対してデータ型が適切であることを確認するには、sp_executesql を使用できますが、数値から演算子を分離する必要があります。これらの行に沿った何かが機能するはずです:
DECLARE @sql NVARCHAR(4000), @parameterlist NVARCHAR(500), @ageParameter INT, @equality NVARCHAR(2)
SET @ageParameter = 40
SET @equality = '='
SET @sql =
'SELECT * FROM SomeTable
WHERE @equality = ''='' AND Age = @ageParameter
UNION ALL
SELECT * FROM SomeTable
WHERE @equality = ''<'' AND Age < @ageParameter
UNION ALL
SELECT * FROM SomeTable
WHERE @equality = ''>'' AND Age > @ageParameter
'
SET @parameterlist = '@ageParameter INT, @equality NVARCHAR(2)'
EXEC sp_executesql @sql, @parameterlist, @ageParameter = @ageParameter, @equality = @equality
sp_executesql の仕組みの詳細: http://msdn.microsoft.com/en-us/library/ms188001(v=sql.100).aspx