SQL:返回包含最后一个字母不是K的单词的记录

SQL:返回包含最后一个字母不是K的单词的记录,sql,sql-server,ssms,wildcard,Sql,Sql Server,Ssms,Wildcard,假设我有一个表,其中包含一个按名称查询的列。我必须显示此列中的字符串使用noloc而不是nolock的记录。请注意,noloc后面/前面可以加上或空格等。我只需要所有在noloc之前和之后有任何内容的记录,nolock除外。有没有一种在SQL中实现的方法 我试过: select * from table1 where Query LIKE '%noloc%' 但这包括包含nolock的查询。我尝试了上面的一些变体,比如在%之前和/或之后添加空格,但它们都不能满足所有条件。您可以在where子句

假设我有一个表,其中包含一个按名称查询的列。我必须显示此列中的字符串使用noloc而不是nolock的记录。请注意,noloc后面/前面可以加上或空格等。我只需要所有在noloc之前和之后有任何内容的记录,nolock除外。有没有一种在SQL中实现的方法

我试过:

select * from table1
where Query LIKE '%noloc%'

但这包括包含nolock的查询。我尝试了上面的一些变体,比如在%之前和/或之后添加空格,但它们都不能满足所有条件。

您可以在where子句中同时使用这两个条件

select * from table1
where Query LIKE '%noloc%' and Query NOT LIKE '%nolock%'

可以在where子句中使用这两个条件

select * from table1
where Query LIKE '%noloc%' and Query NOT LIKE '%nolock%'

你想要任何+noloc+任何一个字符,但是k+任何东西。在这里:

select * from table1
where Query LIKE '%noloc[^k]%'

你想要任何+noloc+任何一个字符,但是k+任何东西。在这里:

select * from table1
where Query LIKE '%noloc[^k]%'