基于存储过程参数的条件where子句?

时间:2010-11-11 21:37:20

标签: sql sql-server-2005 tsql stored-procedures

我有一个带有参数的SQL Server 2005存储过程:@includeClosedProjects

我想根据此参数控制WHERE子句。

create proc sel_projects
(@incClosedRel int = 1)
as

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

我想在@incClosedRel =1时获取所有项目(不包括where子句)。 否则,请包含where子句。

2 个答案:

答案 0 :(得分:9)

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

答案 1 :(得分:1)

create proc yourproc
@value int
as

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