[^](通配符 - 无需匹配的字符)(Transact-SQL)
适用于: SQL Server Azure SQL 数据库 Azure SQL 托管实例
匹配不在方括号 [^]
之间指定的范围或集合内的任何单个字符。 可以在涉及模式匹配的字符串比较(例如,LIKE
和 PATINDEX
)中使用这些通配符。
示例
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)