2010-08-18 37 views

回答

2

如果未指定diplomaPercentage返回的将是所有行(即通过空),在其他情况下将被返回的行在diploma_percentage多于或等于@diplomaPercentage。 :)

1

@diplomaPercentage是一个变量。

@diplomaPercentage为null时检查所述变量为NULL或不和

diploma_percentage> = @ diplomaPercentage被检查,如果该列值diploma_percentage大于或等于变量值

1

如果给它一个空值为@diplomapercentage那么它将返回所有记录,否则它将只返回diploma_percentage值大于或等于您提供的值的记录。

1

如果@diplomaPercentage没有值传递它,它会返回所有的行,否则将返回所有行其中,如果值已经

2

已经通过这种状况通常是diploma_percentage比@diplomaPercentage更大用于避免“动态SQL”,但与仅使用动态SQL相比,它使代码变得丑陋和具有讽刺意味可能导致更糟的性能。你可以阅读更多关于此:

http://www.sommarskog.se/dyn-search-2005.html

+0

然后什么是替代写这个查询? 请稍微编码... – NoviceToDotNet 2010-08-19 04:57:28

+0

在存储过程中,您只需使用一些IF..ELSE来构建SQL语句,然后将其提供给EXEC。你读过我发布的文章吗? – sayap 2010-08-19 09:19:48

+0

但我的存储过程是简单的参数化查询,我在<字符串,对象>形式传递字典对象 – NoviceToDotNet 2010-08-19 09:58:21