2016-02-25 47 views
1

我在查询中放入了两个参数; [A_from]和[A_to]来决定数据集中的某个值。SSRS中对数据集的SQL查询

这两个参数都允许Null/empty,并且参数值按照下面的参数更改。 如何为此编写查询? (试过case语句,但不起作用。)

Input)     Output) 
A_From and A_To  some Value Between A_From And A_To 
Only A_From   some value >= A_From 
Only A_To    some value <= A_To 
Both NULL    * (all) 

回答

0

由于攀比null总是产生false,您可以使用此:

select * 
from my_table t 
where 
    (t.value >= A_From and t.value <= A_To) or 
    (t.value >= A_From and A_To is null) or 
    (A_From is null and t.value <= A_To) or 
    (A_From is null and A_to is null) 
+0

谢谢您的帮助。我刚刚尝试过,但它没有返回任何内容,当我输入Only A_from并且都是null(应该返回t.value的所有值) –

+0

@Kitty_jp:我不确定你的意思是“input Only A_from and both both空值”。你指的是表中的“value”字段的值还是参数?如果你只是在讨论参数,那么这个陈述是矛盾的。 'value'字段也可以是'null'吗?如果是这样,那排是否匹配? –

+0

对不起,我的英语。我的意思是,当我在参数A_From中输入一些值时,它什么都不返回,但是什么都不输入给A_To。另外,当我给这两个参数为空值时,它什么也不返回。 –