2

我得到了必须使用likeSQL Server 2008 R2 中的运算符搜索特殊字符的要求。

前任:

Name = sk'saintho

select * from table1 where name like 'sk'saintho'

对于上述情况,我收到错误

'saintho' 附近的语法不正确。

字符串 '' 后面的非闭合引号。

关于这个问题的想法将不胜感激。

4

1 回答 1

2

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

select * from table1 where name like 'sk'saintho'

sk组件将是红色的,作为文字字符串,而saintho将是常规的黑色文本。SQL 不理解'字符是字符串的一部分,而是假定这是字符串的结尾。

与许多其他语言一样,在字符串中包含字符串终止符号的正确方法是包含两次。使用它两次告诉解析器你想'在字符串内部包含而不是结束字符串。

select * from table1 where name like 'sk''saintho'

如果要查找具有该字符的所有现有项目,可以在语句'中使用相同的模式like

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

解析器会将其解释为like %'%,您将找到名称中包含'.

于 2013-08-16T20:38:09.917 回答