请帮忙看看这个存储过程是什么错误?
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 '%西?% '
[解决办法]
原则:单引号中如果还要显示单引号,需要写成 ' '来转义