【问题标题】:conditional where clause based on a stored procedure parameter?基于存储过程参数的条件 where 子句?
【发布时间】:2010-11-11 21:37:19
【问题描述】:

我有一个带有参数的 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 子句。

【问题讨论】:

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


    【解决方案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
      

      【讨论】:

        猜你喜欢
        • 2015-11-21
        • 2015-01-29
        • 1970-01-01
        • 2017-12-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多