数据类型varchar和varchar在模运算符SQL Server中不兼容

时间:2018-08-28 10:54:23

标签: sql sql-server tsql

我收到此错误:

  

数据类型varchar和varchar在模运算符中不兼容。

运行此代码时

' Number LIKE '%' + @search + '%' ';

数字是整数,该代码段显示在'';中;由于动态枢纽声明。有什么想法我可以运行吗?谢谢

3 个答案:

答案 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%一起使用。两者都确定彼此之间是否有字符串。