0

我通过使用检索客户信息

WHERE UPPER(CustomerName) LIKE UPPER('%ALAN%');

现在,我想在@CustomerName创建新存储过程时传入一个变量。所以,我像这样改变了我的查询:

DECLARE @CustomerName Nvarchar(100);
SET @CustomerName = 'ALAN';

WHERE UPPER(CustomerName) LIKE UPPER(''%'' + @CustomerName + ''%'');

但是,我收到以下错误:

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

我怀疑是因为我用错了单引号。如何更新我的查询以获得结果?

4

2 回答 2

1

您的查询中有额外的报价,请删除它=)

DECLARE @CustomerName Nvarchar(100);
SET @CustomerName = 'ALAN';

WHERE UPPER(CustomerName) LIKE UPPER('%' + @CustomerName + '%');

示例:http ://sqlfiddle.com/#!6/c5424/5

于 2013-10-10T03:46:30.943 回答
1

应该就是下面那个。您将字符串文字与变量值连接起来,您不需要做任何特别的事情。

DECLARE @CustomerName Nvarchar(100);
SET @CustomerName = 'ALAN';

WHERE UPPER(CustomerName) LIKE UPPER('%' + @CustomerName + '%');

注意,你没有包含SELECT部分,所以我也没有包含它。

于 2013-10-10T03:43:56.627 回答