存储过程实现多条件查询

ALTER proc SelectProduct
@ProdID varchar(10),
@ProdName nvarchar(30),
@CategoryID varchar(5),
@MinPrice decimal(10,2),
@MaxPrice decimal(10,2)
as
declare @sql varchar(2000)
set @sql='select * from Product where 1=1'
if @ProdID<>''
set @sql=@sql+' and ProdID like ''%'+@ProdID+'%'''
if @ProdName<>''
set @sql=@sql+' and ProdName like ''%'+@ProdName+'%'''
if @CategoryID<>'ALL'
set @sql=@sql+' and CategoryID='''+@CategoryID+''''
if @MinPrice<>-1
set @sql=@sql+' and Price>='+cast(@MinPrice as varchar)
if @MaxPrice<>-1
set @sql=@sql+' and Price<='+cast(@MaxPrice as varchar)
set @sql=@sql+' order by AddTime desc'
--print @sql
exec(@sql)

使用单引号进行字符串的连接,原来字段值处使用单引号的地方变成双单引号
原文地址:https://www.cnblogs.com/lavenderzh/p/1578479.html