适用于:SQL Server
Azure SQL 数据库
Azure SQL 托管实例
Microsoft Fabric 预览版中的 SQL 数据库
匹配任何不在方括号 [^]之间指定范围或设置的单个字符。 可以在涉及模式匹配的字符串比较(例如,LIKE 和 PATINDEX)中使用这些通配符。
Examples
本文中的代码示例使用 AdventureWorks2022 或 AdventureWorksDW2022 示例数据库,可以从 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