阅读背景:

Sql Server 存储过程 动态添加WHERE条件 (转载)

来源:互联网 

多条件查询存储过程 例一

create proc pr_select_Natural
(
 @CDATE  datetime,
 @FAC_NAME varchar(50),
 @BATTERY_TYPE varchar(20),
 @MAKE_MODE varchar(20),
 @PRODUCE_MODE varchar(20),
 @YEAR  char(4),
 @MONTH  char(2),
 @TDATE  datetime,
 @PAGENUM varchar(12)
)
as
declare @strWhere varchar(500)
if ( @CDATE = null ) 
 set @strWhere = @strWhere+' and CDATE ='+ @CDATE
if ( @FAC_NAME = null ) 
 set @strWhere = @strWhere+' and FAC_NAME like ''%''+@FAC_NAME+''%'' '
if ( @BATTERY_TYPE = null ) 
 set @strWhere = @strWhere+' and BATTERY_TYPE like ''%''+@BATTERY_TYPE+''%'''
if ( @MAKE_MODE = null ) 
 set @strWhere = @strWhere+' and MAKE_MODE like ''%''+@MAKE_MODE+''%'''
if ( @PRODUCE_MODE = null ) 
 set @strWhere = @strWhere+' and PRODUCE_MODE like ''%''+@PRODUCE_MODE+''%'''
if ( @YEAR = null ) 
 set @strWhere =@strWhere+ ' and YEAR like ''%''+@YEAR+''%'''
if ( @MONTH = null ) 
 set @strWhere = @strWhere+' and MONTH like ''%''+@MONTH+''%'''
if ( @TDATE = null ) 
 set @strWhere = @strWhere+' and TDATE = @TDATE'
if ( @PAGENUM = null ) 
 set @strWhere = @strWhere+' and PAGENUM like ''%''+@PAGENUM+''%'''
 
set @strMAIN = 'select 
  CDATE  as 出厂时间,
  FAC_NAME  as 发货厂家,
  BATTERY_TYPE as 电池型号,
  SEND_TYPE as 发货类型,
  SEND_NUM as 检测数量,
  MAKE_MODE as 制作方式,
  PRODUCE_MODE as 生产方式,
  BATTERY_NUM as 电池组数量,
  [YEAR]  as 年,
  [MONTH] as 月,
  TDATE  as 日期,
  SEND_RULE as 发货规则,
  SEND_CODE as 发货组编号,
  BATTERY_SORT as 电池类别,
  PAGENUM as 条码号,
  FITTING_CODE as 装配号,
  LINE_CODE as 生产机号,
  FLAG  as 是否放行,
  REMARK  as 备注,
  OTHER  as 其他,
  BLANK_COL as 空白列
    from T_INFOCODE_NATURAL
 where 1=1 ' create proc pr_select_Natural
(



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: