2013-08-16 79 views
1

我有,我有使用like运营商在SQL Server 2008 R2来搜索特殊字符的要求。如何在SQL Server中使用like运算符搜索特殊字符?

例:

Name = sk'saintho 

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

针对以上情况,我得到的错误

附近有语法错误saintho“。

字符串''后面未引用的引号。在这个问题上

想法可以理解的。

+1

你应该使用'喜欢“sk''saintho'' –

回答

1

如果您使用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 %'%,你会发现任何行名称中包含'

+0

感谢柯克,我使用像在动态SQL操作,所以如果我加一个单引号然后像普通的名字等等操作将失败的其他条件。所以我的要求是,即使我通过特殊结构,我们不应该包括像运营商 – Prasad

+0

嗨普拉萨德任何额外的报价。我已经更新了我的答案,希望它能帮助你。 –