Sql server 2008 如何在SQL Server中使用like运算符搜索特殊字符?

Sql server 2008 如何在SQL Server中使用like运算符搜索特殊字符?,sql-server-2008,Sql Server 2008,我得到的要求是,我必须使用SQL Server 2008 R2中的like操作符搜索特殊字符 例: 对于上述情况,我得到了错误 “saintho”附近的语法不正确 字符串“”后的未闭合引号 如果您使用的是SQL Server Management Studio,您应该看到语法格式显示您的查询有问题 select * from table1 where name like 'sk'saintho' sk组件将是红色的文本字符串,saintho将是常规的黑色文本。SQL不理解“字符是字符串的一部分

我得到的要求是,我必须使用SQL Server 2008 R2中的
like
操作符搜索特殊字符

例:

对于上述情况,我得到了错误

“saintho”附近的语法不正确

字符串“”后的未闭合引号


如果您使用的是SQL Server Management Studio,您应该看到语法格式显示您的查询有问题

select * from table1 where name like 'sk'saintho'
sk
组件将是红色的文本字符串,
saintho
将是常规的黑色文本。SQL不理解
字符是字符串的一部分,而是假定这是字符串的结尾

select * from table1 where name like 'sk''saintho'
与许多其他语言一样,在字符串中包含字符串终止符号的正确方法是将其包含两次。两次使用它会告诉解析器您希望在字符串中包含
,而不是结束字符串

select * from table1 where name like 'sk''saintho'
如果要查找具有
字符的所有现有项
可以在类似
语句中使用相同的模式

select * from table1 where name like '%''%'

解析器将其解释为
like%'%
,您将发现名称中包含
'

的任何行。您应该使用
like'sk''saintho'
谢谢kirk,我在动态sql中使用like运算符,因此如果我添加一个引号,那么对于正常名称等其他条件,like运算符将失败。所以我的要求是,即使我通过了特殊的字符,我们也不应该为like运算符添加任何额外的引号