2012-01-24 47 views
7

我需要逃避[在SQL查詢的SQL Serversql server:需要轉義[?

select * from sometable where name like '[something]'; 

其實我找了[某件事之前,我不希望它像一個通配符。我想:

select * from sometable where name like ''[something]'; 

但是從這個得到錯誤信息:

消息102,級別15,狀態1,行1個附近有語法錯誤 '東西'。 消息105,級別15,狀態1,行1在 字符串'之後未使用的引號';

+2

可能重複的[如何在LIKE子句中轉義方括號?](http://stackoverflow.com/questions/439495/how-can-i-escape-square-brackets-in-a-like - 條款) – onedaywhen

回答

6

用途:

select * from sometable where name like '[[]something[]]'; 

你可以使用,以及:

select * from sometable where name like '\[something\]' escape '\'; 

詳見LIKE (Transact-SQL) on MSDN

+0

是的!這工作!非常感謝您的所有意見! – user840930

0

下面是一些示例代碼。您需要嵌入[[]

SELECT FirstName 
    FROM (SELECT '[Test]' AS FirstName) as t 
WHERE FirstName LIKE '[[]%' 
4

嵌入[[]

declare @T table 
(
    name varchar(20) 
) 

insert into @T values 
('abc'), 
('[abc') 

select * 
from @T 
where name like '[[]a%' 

結果:

name 
-------------------- 
[abc 

看一看在這裏,你可以在like表達做什麼。 LIKE (Transact-SQL)

+1

它可能有助於指出它使用正則表達式,所以[...]表示可接受的字符集。這就是爲什麼這個解決方案能夠工作。 – weston

+1

@weston - 用一個鏈接更新了答案,在那裏你可以閱讀所有關於它的信息。 –