请帮忙看看这个存储过程是什么错误?
declare @num int, @sqls nvarchar(4000),@strWhere nvarchar(4000)
set @strWhere= 'and bigkind like "%中药% " or bigkind like "%西药% " '
set @sqls= 'select @a=count(id) from get_zhaoshang where 1=1 '+ @strWhere
--print @sqls
exec sp_executesql @sqls,N '@a int output ',@num output
select @num
报错:列名 '%西药% ' 无效。
(所影响的行数为 1 行)
------解决方案--------------------set @strWhere= 'and bigkind like ' '%中药% ' 'or bigkind like ' '%西药% ' ' '
------解决方案--------------------N ' '%中药% ' '
------解决方案--------------------like ' '%中药% ' ' or bigkind like ' '%西药% ' ' ' --改两个单引
------解决方案--------------------declare @num int, @sqls nvarchar(4000),@strWhere nvarchar(4000)
set @strWhere= 'and bigkind like ' '%中药% ' ' or bigkind like ' '%西药% ' ' '
set @sqls= 'select @a=count(id) from get_zhaoshang where 1=1 '+ @strWhere
--print @sqls
exec sp_executesql @sqls,N '@a int output ',@num output
select @num
------解决方案--------------------把 "改为两个 ' '
------解决方案--------------------不支持雙引號造成的吧.
------解决方案--------------------引号!!
------解决方案--------------------set @strWhere= 'and webid like ' '%中药% ' ' or webid like ' '%西药% ' ' '
select @strWhere
result :
and webid like '%中?% ' or webid like '%西?% '
------解决方案--------------------原则:单引号中如果还要显示单引号,需要写成 ' '来转义