|
|
1
68
你可以用 IsNull
编辑 : 你在评论中所描述的可以这样做:
|
|
|
2
9
这是另一种方法
如果参数为空,则不会计算或表达式的其余部分。 |
|
3
9
怎么样
|
|
|
5
5
我想提出一个我在另一个 site :
如果用户选择
|
|
|
6
3
这个问题真的帮助我解决了一个类似的问题,我们中的一些人对此有些挠头。我只是在别人尝试同样的方法,却不明白为什么不起作用的情况下写出来。 如果@Parameter不为空,我试图只计算multipart WHERE子句的一部分。我尝试按如下方式执行此操作,但如果@Parameter为空,则始终没有返回行。
我错误地认为
当然,阿里概述的方法(没有足够的声誉来提升投票率)更有效地解决了这个问题。
|
|
|
7
1
您可以使用ISNULL(),或者像其他人提到的那样显式检查null。只要您没有超过1个或2个可选输入参数,这应该是可以的。但是,如果有更多的参数,这种方法将非常低效,因为您在这些列上创建的索引不会像您预期的那样使用。在这种情况下,我建议您使用动态SQL。这里有一篇很好的文章解释了为什么 http://sqlinthewild.co.za/index.php/2009/03/19/catch-all-queries/ |