Select语句中的条件where子句

时间:2009-06-15 20:02:23

标签: sql conditional

我正在使用存储过程根据SP的参数生成报告。我必须根据传递的参数加入不同的条件。

对于前。

ALTER PROCEDURE [dbo].[sp_Report_InventoryAging] 

@TitleFlag int=0, /*0-All veh, 1-Clear Title, 2-Without Clear Title*/

@CompName varchar(100) = 'ALL COMPANIES',

@CompBranchId varchar(50) = 'ALL',  /*All Offices*/

@StateId varchar(50)='All States'       /*All states*/ 

Select .... Where TitleFlag=@TitleFlag and

现在我想根据像

这样的参数指定条件
  1. 如果不是“所有公司”,那么 上层(公司)=上层(@CompName)
  2. 如果不是“所有办公室”,则 OfficeID = @ CompBranchId
  3. 如果不是“所有国家”,则 StateID = @ StateID
  4. 如何在select语句的where条件下合并所有这些条件,具体取决于参数值?

    非常感谢任何帮助。

1 个答案:

答案 0 :(得分:13)

这样做:

where
(upper(Company)=upper(@CompName) or @compName = 'ALL COMPANIES')
and 
(OfficeID=@CompBranchId or @CompBranchId = 'ALL OFFICES')
and
(StateID=@StateID or @StateID = 'ALL States')