在模运算符SQL Server中,数据类型varchar和varchar不兼容
我得到这个错误: 模运算符中的数据类型varchar和varchar不兼容 运行此代码时在模运算符SQL Server中,数据类型varchar和varchar不兼容,sql,sql-server,tsql,Sql,Sql Server,Tsql,我得到这个错误: 模运算符中的数据类型varchar和varchar不兼容 运行此代码时 ' Number LIKE '%' + @search + '%' '; 数字是一个整数,此代码段显示在“”中;由于动态透视语句。你知道我该怎么做吗?谢谢你大概有这样的东西: SELECT ' Number LIKE '%' + @search + '%' '; SELECT ' Number LIKE ''%'' + @search + ''%'' '; 如果是这样,字符串中就有单引号。因此,“字符
' Number LIKE '%' + @search + '%' ';
数字是一个整数,此代码段显示在“”中;由于动态透视语句。你知道我该怎么做吗?谢谢你大概有这样的东西:
SELECT ' Number LIKE '%' + @search + '%' ';
SELECT ' Number LIKE ''%'' + @search + ''%'' ';
如果是这样,字符串中就有单引号。因此,“字符串”被解释为:
SELECT (' Number LIKE ') % (' + @search + ') % (' ');
%
是模运算符。这就是你的错误
为了将单引号放在字符串中,需要将它们加倍。大概是这样的:
SELECT ' Number LIKE '%' + @search + '%' ';
SELECT ' Number LIKE ''%'' + @search + ''%'' ';
你确定你需要这些外部引号吗
Number LIKE '%' + @search + '%'
否则,您将需要转义内部引号。试试这个:
'Number LIKE ''%'' + @search + ''%'''
因为
%
在SQl Server中是一个变量,它被解释为一个变量,因为要在字符串中插入quto,您需要将它加倍,正如其他答案所建议的那样
其他解决办法是:
'CHARINDEX(' + @search + ', Number) > 0'
我总是倾向于在
上使用它,比如将运算符与%someString%
一起使用。两者都确定另一个中是否有字符串。请显示一个更完整的SQL语句。如果您的百分号位于搜索参数周围,即其中Foo类似于“%bar%”
并且您得到了一个模运算符错误,则您的报价不匹配。阅读并显示一个。您是否可以使用一个IDE对字符串文本进行颜色编码,以便您自己可以看到问题?