|
|
1
3
好的,除了您已经识别的临时表和视图之外,您还可以使用动态SQL来构建代码,然后执行它。这使您不必重复代码,但只需处理就有点困难。这样地:
另一种选择是将不同的where子句合并到原始查询中。
这消除了if/else链,但使查询更加复杂。由于参数嗅探,它还可能导致一些糟糕的缓存查询计划,但这可能与您的数据无关。在做决定之前测试一下。(您还可以添加优化器提示以不缓存查询计划。您不会得到一个坏的提示,但每次执行时也会受到影响以再次创建查询计划。测试以找出答案,不要猜测。此外,具有视图和if/else链的解决方案也会遇到相同的参数嗅探/缓存查询计划问题。) |
|
John D · 需要为NULL或NOT NULL的WHERE子句 1 年前 |
|
Marc Guillot · 记录值时忽略冲突 1 年前 |
|
|
Fachry Dzaky · 正确使用ROW_NUMBER 1 年前 |
|
|
TriumphTruth · 从满足特定条件的数据集中选择1行 1 年前 |