conditional where clause based on a stored procedu

2019-04-28 20:25发布

问题:

I have a SQL Server 2005 stored proc that takes a parameter: @includeClosedProjects.

There's a WHERE clause that I want to control based on this param.

create proc sel_projects
(@incClosedRel int = 1)
as

SELECT projectId, projectName
FROM project
WHERE CompletionStatusCID NOT IN (34, 35) <-- controlled by @incClosedRel 

I want to get all projects (exclude the where clause), when @incClosedRel =1. Otherwise, include the where clause.

回答1:

SELECT projectId, projectName
FROM project
WHERE CompletionStatusCID NOT IN (34, 35) 
    Or @incClosedRel = 1


回答2:

create proc yourproc
@value int
as

if @value = 1
begin
-- your select query
end
else
begin
--your other select query
end