[^](通配符 - 无需匹配的字符)(Transact-SQL)

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例

匹配不在方括号 [^] 之间指定的范围或集合内的任何单个字符。 可以在涉及模式匹配的字符串比较(例如,LIKEPATINDEX)中使用这些通配符。

示例

A:简单示例

下面的示例使用 [^] 运算符查找 Contact 表中名字以 Al 开头且第三个字母不是 a 的前 5 名用户。

-- Uses AdventureWorks  
  
SELECT TOP 5 FirstName, LastName  
FROM Person.Person  
WHERE FirstName LIKE 'Al[^a]%';  

下面是结果集。

FirstName     LastName
---------     --------
Alex          Adams
Alexandra     Adams
Allison       Adams
Alisha        Alan
Alexandra     Alexander

B:搜索字符范围

通配符集可以包含单个字符或字符范围,以及字符和范围的组合。 下面的示例使用 [^] 运算符来查找不以字母或数字开头的字符串。

SELECT [object_id], OBJECT_NAME(object_id) AS [object_name], name, column_id 
FROM sys.columns 
WHERE name LIKE '[^0-9A-z]%';

下面是结果集。

object_id     object_name   name    column_id
---------     -----------   ----    ---------
1591676718    JunkTable     _xyz    1

另请参阅

LIKE (Transact-SQL)
PATINDEX (Transact-SQL)
% (通配符 -- 需匹配的字符)(Transact-SQL)
[ ](通配符 - 要匹配的字符)(Transact-SQL)
_(通配符 - 匹配一个字符)(Transact-SQL)