帮助SQL查询

时间:2011-03-22 16:06:38

标签: sql

有人可以帮我解决这个SQL查询的语法问题吗?我不是很有经验,也不确定如何去做。这是我到目前为止所拥有的。

SELECT ... WHERE (@MyVariable IS NULL OR [MyVariable] <= (CAST(@MyVariable as NUMERIC)))

我真正需要的是能够选择[MyVariable]所在的所有行&lt; = @MyVariable但是还有2个文本选择MyVariable可能在这种情况下它应该总是选择行。如果没有出现投射错误,你怎么做?

1 个答案:

答案 0 :(得分:2)

我认为你需要做几次扭曲才能让它发挥作用..但我认为使用ISNUMERIC结合一个案例陈述就可以解决问题:

SELECT ... WHERE 
@MyVariable IS NULL OR 
ISNUMERIC(@MyVariable) = 0 OR 
[MyVariable] < CASE 
                 WHEN IsNumeric(@MyVariable) = 1 
                     THEN CAST(@MyVariable as NUMERIC) 
                 ELSE 0 -- if you have negatives in your db go to max negative
             END