我使用的Visual Studio 2008和我在一份报告中试图创建一个具有WHERE
语句,将返回所有查询记录,如果@parameter = 0
,否则我希望查询只返回具有@paramete
的记录。使用CASE当在WHERE语句来如果返回的所有记录@parameter = 0
这里是我设想的语句,但似乎无法得到正确的:
WHERE (ADVISOR.staffPersonID = CASE WHEN @advisor = 0 THEN **'Do NOT
filter by staffpersonID'** ELSE @advisor END)
我曾尝试以下代码不工作:
CASE WHEN @advisor = 0 THEN ADVISOR.staffPersonID ELSE @advisor END
ADVISOR.staffPersonID
是如果@parameter
的值不是0
,我将过滤该字段。从我在线研究的情况来看,在声明中使用该字段本身作为THEN
应该可行。它确实如此,除非表(advisor
)根本没有匹配的记录。