【发布时间】:2018-10-11 08:15:24
【问题描述】:
我有下表:
-------------------------------------
groupid value
-------------------------------------
A 10
A 15
B 20
C 50
然后我有一个parameter,称为@groupid。
如果参数为A,则结果必须选择所有记录。但是如果参数不是A 那么结果应该只查看选择的参数。
例如,如果parameter 是B,那么结果应该是:
-------------------------------------
groupid value
-------------------------------------
B 20
例如,如果parameter 是A,那么结果应该是:
-------------------------------------
groupid value
-------------------------------------
A 10
A 15
B 20
C 50
有什么想法吗?
谢谢。
【问题讨论】:
-
你在这里说的不是很清楚。你能再解释一下吗?
-
@MEdwin,所以如果参数是'A',那么结果将显示所有记录。然后,如果参数不是“A”,则结果将仅显示所选参数。
-
CASE WHEN是您在此处寻找的内容。 -
你为什么不在客户端检查并执行两条 SQL 语句之一呢?它们因不同的计划而大不相同(可能)。通过将它们结合起来,您很可能会获得针对一种情况而非另一种情况进行优化的计划。
标签: sql tsql sql-server-2014