2012-04-16 53 views
-1

如果在SQL Server的表中的字段值是像A(B),如果我編寫一個查詢如何比較有 「(」 字符

SELECT * FROM MyTable WHERE MyField = 'A(B)'

它是一個varchar字段不返回任何結果。如何處理這種情況?

+4

你的查詢看起來不錯,應該工作。你確定這個值是'A(B)'嗎,不是訓練空間嗎?如果你使用'MyField LIKE'%A(B)%''會發生什麼? – Lamak 2012-04-16 12:52:29

+0

@Lamak那不行。答案在下面給出。 – 2012-04-16 12:56:09

+1

如果您使用'like'而不是'='和方括號'A [B]'而不是括號'A(B)',那麼您會遇到問題。你的意思是說你在'MyField'如'A [B]'的地方有問題。 – 2012-04-16 13:09:33

回答

2

您的查詢應該可以正常工作,如果要指定一個不同的轉義參數,你可以使用ESCAPE

WHERE column LIKE '%A#(B#)%' ESCAPE '#' 

另外,如果你想匹配任何包含「A(B)」的東西,不要忘記用百分號符號來包圍它。