2013-08-16 107 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

嗨普拉薩德任何額外的報價。我已經更新了我的答案,希望它能幫助你。 –