SQL SERVER 字符串函数 PATINDEX()

我的梦境 提交于 2020-01-15 07:09:57

定义:

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。

例:

※不区分大小写

 

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

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!