📜  SQL Server – PATINDEX()函数

📅  最后修改于: 2022-05-13 01:55:32.091000             🧑  作者: Mango

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