SQL SERVER 字符串函数 PATINDEX()

时间:2022-06-07 15:07:40

定义:

PATINDEX()返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。

语法:

PATINDEX ( '%pattern%' , expression )

参数:

pattern:包含要查找的序列的字符表达式。 可以使用通配符;但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外) 。 pattern 是字符串数据类型类别的表达式 。 pattern最多包含 8000 个字符 。

expression 是字符串数据类型类别的表达式 。

返回值:

bigint(如果 expression 的数据类型为 varchar(max) 或 nvarchar(max));否则为 int 。

原文表述:“如果 pattern 或 expression 为 NULL,则 PATINDEX 返回 NULL 。”是部分错误的。

正确表述:

如果 pattern 为 NULL,则 PATINDEX 返回 NULL 。

如果 expression 为 NULL,则SSMS会报错 。

PATINDEX 的起始位置为 1。

例:

SQL SERVER 字符串函数 PATINDEX()

SQL SERVER 字符串函数 PATINDEX()

SQL SERVER 字符串函数 PATINDEX()

※不区分大小写

SQL SERVER 字符串函数 PATINDEX()

参考原文地址:https://docs.microsoft.com/zh-cn/sql/t-sql/functions/patindex-transact-sql?view=sql-server-2017

声明:本文是本人查阅网上及书籍等各种资料,再加上自己的实际测试总结而来,仅供学习交流用,请勿使用于商业用途,任何由此产生的法律版权问题概不负责,谢谢。