糊涂查询问题

来源:百度知道 编辑:UC知道 时间:2024/06/17 17:56:08
CREATE PROCEDURE tj_show1
(
@db_table varchar(20),--表名
@tj_zd varchar(30),--查询字段条件
@tj_zdtj varchar(50),--查询条件
@date_sj datetime --查询日期
)

AS
DECLARE @sqlzdtj varchar(150)--sql where 字段条件
IF @tj_zdtj='' OR @tj_zdtj IS NULL
SET @sqlzdtj=''
ELSE
SET @sqlzdtj='and '+@tj_zd+ ' like ''% '+@tj_zdtj+' %'''
declare @str nvarchar(2000)
BEGIN
set @str='select * from '+@db_table+' a,(select number,name,acer,version from netbarxxb) as b where a.date2='''+ convert(nvarchar(20),@date_sj,111) + ''' '+@sqlzdtj+' and a.number=b.number'
EXEC(@str)
END
GO

糊涂查询的like这段有问题,用不了糊涂查询不知道为什么,
请朋友们帮我看看,

create proc 存储过程名(参数)
as
declare @sql nvarchar(1000)
set @sql='select * from 表 where 1=1'
if(参数<>'')
set @sql=@sql+' and 表中要查询的字段 like ''%'+参数+'%'''
/*如果还有其他参数的话参照上面的*/
exec(@sql)

GO

我是这么做的好用,不知道你这么样。