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

适用于:SQL ServerAzure SQL 数据库Azure SQL 托管实例Microsoft Fabric 预览版中的 SQL 数据库

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

Examples

本文中的代码示例使用 AdventureWorks2022AdventureWorksDW2022 示例数据库,可以从 Microsoft SQL Server 示例和社区项目 主页下载该数据库。

答:基本示例

下面的示例使用 [^] 运算符查找表中的前五个人 Contact ,他们的名字以开头,并且有第三个 Al 字母不是字母 a

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