![]() |
1
1
解决这个问题的最佳方法是使用动态SQL。Dforck的解决方案的问题是,它可能导致参数嗅探。为了给出一个大致的想法,您的查询可能如下所示 declare@query varchar(max); 如果(@condition=0) set@query='从表1中选择* 联合所有 设置@query=@query+'从表2中选择* sp_executesql@查询 这只是一个简化的例子,但是在实际的实现中,您将参数化动态查询,这将解决参数嗅探的问题。这个问题有一个很好的解释 Parameter Sniffing (or Spoofing) in SQL Server |
![]() |
2
2
我可以想象,最终的SQL查询以及依赖于预计算值的所有联合和条件会变得相当复杂。如果您有兴趣降低查询的复杂性(不是为了机器,而是为了维护目的),我会将单个查询移动到视图或表值函数中,以将该逻辑移动到其他地方。然后你可以使用
|
![]() |
3
1
我认为你最好这样做:
|
![]() |
Deadpool · 未返回正确值但未定义的函数的类型 7 年前 |
![]() |
jeangelj · Python panda根据其他列中的条件覆盖值 7 年前 |
![]() |
whalesboy · 基于结果连接表(查询后) 7 年前 |
![]() |
Tania MartÃnez · <a>展开时标记会打断样式 7 年前 |
![]() |
alofgran mrry · 有条件替换NaN 7 年前 |