Sta*_*low -1 sql t-sql sql-server sql-like
我正在阅读mssqltips上的文章,想尝试正则表达式中的插入符号。我非常了解正则表达式并且经常使用它,尽管在 SQl Server 查询中使用得不多。
对于以下名称列表,我原以为 1) select * from people where name like '%[^m]%;'会返回那些不包含“m”的名称。但事实并非如此。我知道我可以做得到2) select * from people where name not like '%m%';我想要的结果,但我只是困惑为什么 1) 不能按预期工作。
我正在使用 SQL Server 2017,但这里有一个小提琴:
'%[^m]%'对于任何包含不是 的字符的字符串都是如此m。扩展版本将是'%[Any character not m]%'. 由于所有这些字符串都包含 以外的字符m,因此它们是有效结果。
如果您有一个类似 的字符串mmm,where name like '%[^m]%'则不会返回该行。