如何在 SQL Server 中使用单引号?

Posted

技术标签:

【中文标题】如何在 SQL Server 中使用单引号?【英文标题】:How to use single quote in SQL Server? 【发布时间】:2013-10-17 16:11:48 【问题描述】:

我通过使用检索客户信息

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

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

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

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

但是,我收到以下错误:

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

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

【问题讨论】:

【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

您的查询中有多余的引号,删除它 =)

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

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

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

【讨论】:

以上是关于如何在 SQL Server 中使用单引号?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用单引号 sql server 2005 插入文本

客户数据中存在单引号,如何插入SQL SERVER

sql server 如何去除双引号

SQL Server 中的 SQL 注入如何击败转义单引号的卫生设施?

如何在 Oracle SQL 中处理单引号

如何在 Excel 中的日期周围添加单引号以在 SQL 中使用?