我希望能够传入一个参数列表,并忽略那些为NULL的参数.这样查询实际上假装过滤器不存在并忽略它.
我是这样做的:
(@thing IS NULL or Thing=@thing)
这是对的,如果是的话,它会表现得很糟糕吗?它似乎比分别构造SQL要慢很多.
这样做的最佳方法是什么?
固定!请参阅Marc Gravell的回答.总之,使用IS NULL多次是一个很大的性能影响.
t-sql parameters performance
parameters ×1
performance ×1
t-sql ×1