字符表达式的形式_如下sql语句中,可能返回null值

字符表达式的形式_如下sql语句中,可能返回null值SQL PATINDEX – 判断是否包含字符(表达式),返回字符(表达式)的第一次出现的起始位置 1、PATINDEX(patindex)函数介绍 返回模式在指定表达式中第一次出现的起始位置;如果在所有有效的文本和字符数据类型中都找不到该模式,则返回零。 PATINDEX ( '%patt

字符表达式的形式_如下sql语句中,可能返回null值"

SQL PATINDEX – 判断是否包含字符(表达式),返回字符(表达式)的第一次出现的起始位置

1、PATINDEX(patindex)函数介绍

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

PATINDEX ( '%pattern%' , expression )

参数说明:

  • pattern //包含要查找的序列的字符表达式。 可以使用通配符;但 pattern 之前和之后必须有 % 字符(搜索第一个或最后一个字符时除外)。 pattern 是字符串数据类型类别的表达式。 pattern最多包含 8000 个字符。expression //是一个expression,通常是针对指定模式搜索的列。 expression 是字符串数据类型类别的表达式。
    • 备注:虽然传统正则表达式在 SQL Server 中不受本机支持,但可以使用各种通配符表达式来实现类似的复杂模式匹配。

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

注解:

  • 如果 pattern 或 expression 为 NULL,则 PATINDEX 返回 NULL。
  • PATINDEX 的起始位置为 1。
  • PATINDEX 基于输入的排序规则执行比较。 若要以指定排序规则进行比较,则可以使用 COLLATE 将显式排序规则应用于输入。

 2、使用示例:

2.1 常用:

SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy');  --输出4

2.2 可以使用任意通配符,例如,使用通配符(_)  

SELECT test = PATINDEX('%t_o%', 'Hi,TaoRoy');  --输出4

PATINDEX 的作用与 LIKE 类似,与 LIKE 不同的是,PATINDEX 返回一个位置,这与 CHARINDEX 类似。

2.3 使用 [^] 字符串运算符查找不是数字、字母或空格的字符的位置。

SELECT test = PATINDEX('%[^ 0-9A-Za-z]%', 'Hi,TaoRoy');  --输出3
SELECT test = PATINDEX('%[0-9A-Za-z]%', 'Hi,TaoRoy');  --输出1

2.4 排列规则(Latin1_General_BIN)、区分大小写(Latin1_General_CS_AS)和不区分大小写(Latin1_General_CI_AS)

SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_BIN);  --输出0
SELECT test = PATINDEX('%Tao%', 'Hi,TaoRoy' COLLATE Latin1_General_BIN);  --输出4
--区分大小写
SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_CS_AS);  --输出0
--不区分大小写
SELECT test = PATINDEX('%tao%', 'Hi,TaoRoy' COLLATE Latin1_General_CI_AS);  --输出4

 

 

 

 

创建时间:2021.12.28  更新时间:

今天的文章字符表达式的形式_如下sql语句中,可能返回null值分享到此就结束了,感谢您的阅读,如果确实帮到您,您可以动动手指转发给其他人。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/52265.html

(0)
编程小号编程小号
上一篇 2023-08-31
下一篇 2023-08-31

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注