我收到此错误:
数据类型varchar和varchar在模运算符中不兼容。
运行此代码时
' Number LIKE '%' + @search + '%' ';
数字是整数,该代码段显示在'';中;由于动态枢纽声明。有什么想法我可以运行吗?谢谢
答案 0 :(得分:2)
大概你有这样的东西:
SELECT ' Number LIKE '%' + @search + '%' ';
如果是,则在字符串中使用单引号。因此,“字符串”被解释为:
SELECT (' Number LIKE ') % (' + @search + ') % (' ');
%
是取模运算符。 。 。因此就是你的错误。
为了将单引号放在字符串中,您需要将它们加倍。像这样:
SELECT ' Number LIKE ''%'' + @search + ''%'' ';
答案 1 :(得分:1)
确定要用那些外引号吗?
Number LIKE '%' + @search + '%'
否则,您需要转义内部引号。试试这个:
'Number LIKE ''%'' + @search + ''%'''
答案 2 :(得分:0)
由于%
在SQl Server中是modulo operator,因此它被解释为,因为要在字符串中插入quto,您需要加倍,如其他答案所建议的。 / p>
其他解决方案是:
'CHARINDEX(' + @search + ', Number) > 0'
我总是倾向于将LIKE
的操作者与%someString%
一起使用。两者都确定彼此之间是否有字符串。