SQL Server LIKE包含括号字符

CJS*_*CJS 51 sql sql-server pattern-matching

使用SQL Server 2008.我有一个包含以下列的表:

sampleData (nvarchar(max))
Run Code Online (Sandbox Code Playgroud)

其中一些行中此列的值是格式如下的列表:

["value1","value2","value3"]
Run Code Online (Sandbox Code Playgroud)

我正在尝试编写一个简单的查询,通过检测左括号,返回列表格式为这样的列的所有行.

SELECT * from sampleTable where sampleData like '[%'
Run Code Online (Sandbox Code Playgroud)

上面的查询不起作用,因为'['是一个特殊的字符,我不能为我的生活找出如何逃避括号所以我的查询做我想要的.

谢谢你的任何建议!

gbn*_*gbn 79

 ... like '[[]%'
Run Code Online (Sandbox Code Playgroud)

[ ]用来包围特殊字符(或范围)

请参阅SQL Server LIKE中的 "将通配符用作文字"一节

编辑,2011年11月24日

注意:您不需要逃避结束括号......

  • 实际上右括号`]` *不应该*被转义,否则会给出错误的结果 (3认同)

Ed *_*per 29

除了gbn的答案,另一种方法是使用ESCAPE选项:

SELECT * from sampleTable where sampleData like '\[%' ESCAPE '\'
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅文档