我正在使用 Visual Studio 2008 并且在报告中尝试创建一个具有WHERE
语句的查询,该语句将返回 all < / em>记录,如果是@parameter = 0
,否则我希望查询只返回具有@paramete
的记录。
以下是我设想的陈述,但似乎无法纠正:
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
)根本没有匹配的记录。
答案 0 :(得分:0)
WHERE
(@advisor <> 0 AND ADVISOR.staffPersonID = @advisor)
OR
(@advisor = 0 )
答案 1 :(得分:0)
试试这个:
WHERE ADVISOR.staffPersonID = @advisor OR @advisor = 0