SQL Server – PATINDEX()函数
SQL Server 中的 PATINDEX()函数用于返回字符串或指定表达式中模式第一次出现的起始索引。
- 如果未找到模式,则返回零。
- 如果模式或表达式为 NULL,则返回 NULL。
- 起始索引为 1。
句法:
PATINDEX ( '%pattern%' , expression )
有两个参数,两者都是必需的。
- 模式——这是在必须用 % 包围的字符串中找到的序列。其它字符可以在模式中使用。该模式的限制为 8000 个字符。其他字符是'%', ' - ', '[]', '[^]'。
- 表达式 –搜索指定模式的字符串。
适用于:
PATINDEX()函数适用于以下数据库。
- SQL Server(所有支持的版本)
- Azure SQL 数据库
- Azure SQL 数据仓库
- Azure SQL 托管实例
- Azure Synapse Analytics 分析平台系统 (PDW)
- 并行数据仓库
假设如果我们想在字符串'GeeksforGeeks' 中找到第一次出现的 'ek'。那么查询将是这样的:
询问:
SELECT PATINDEX('%ek%', 'GeeksforGeeks');
输出:
3
现在,如果我们在字符串“GeeksforGeeks”中找到字母“z”的第一次出现。
询问:
SELECT PATINDEX('%[z]%', 'GeeksforGeeks');
输出:
它返回 0,因为给定的字符串不包含字母 'z。
0
再举一个例子来查找字符串“你好吗?”中第一次出现的符号。
询问:
SELECT position = PATINDEX('%[^ 0-9A-z]%', 'How are you?');
输出:
12