2017-08-17 217 views
0

在正则表达式,你可以这样做[交流] +,这将匹配SQL LIKE - 使用括号(字符范围)匹配匹配整个单词

  • aaabbbccc
  • abcccaabc
  • cbccaa
  • b
  • AAAAAAAAA

在SQL LIKE似乎塔你可以做相当于“。*”的“%”或[a-c]。是否可以在SQL中使用+(至少一个)量词来完成[a-c] +?

编辑:只是为了澄清,所期望的最终查询看起来像

SELECT * FROM表WHERE列LIKE '[AC] +'

这将然后匹配列表上面,但在例如“xxxxxaxxxx”上不匹配

+0

与正则表达式一起玩的sql服务器函数叫做'patindex()'。 –

回答

1

作为一般规则,SQL Server的LIKE模式比正则表达式弱得多。为了您的具体的例子,你可以这样做:

where col not like '%[^a-c]%' 

也就是说,列不包含任何字符不是一个,b或c。

+0

虽然我的实际问题更加复杂,但这个答案对我在问题中描述的简化问题没有帮助,这是一个有效的答案。 –

+0

@KornélRegius。 。 。你应该问一个关于你的实际问题的更多细节的问题。 –

1

可以在SQL中使用正则表达式与如LIKE的组合:

SELECT * FROM Table WHERE Field LIKE '%[^a-z0-9 .]%' 

这个作品在SQL

或者在你的情况

SELECT * FROM Table WHERE Field LIKE '%[^a-c]%' 
+0

我想知道,你是不是指“不喜欢”?所以SELECT * FROM #table WHERE data NOT LIKE'%[^ a-c]%' –

+0

是的,如果你需要选择所有不包含a-c的东西。 – MirzaS

-3

我看来想要从数据库中的某些数据,那就是你不完全清楚,你必须在该字段中显示你的专栏和你想要的所有角色。

+1

如果您需要关于该问题的更多信息,请使用评论部分。 –