文章目录

  • 第二十七章 SQL函数 CHARINDEX
  • 大纲
  • 参数
  • 描述
  • CHARINDEX, POSITION, $FIND和INSTR
  • 示例

第二十七章 SQL函数 CHARINDEX

一个字符串函数,它返回子字符串在字符串中的位置,具有可选的搜索起点。

大纲

CHARINDEX(substring,string[,start])

参数

  • substring - 要在字符串中匹配的子字符串。
  • string - 作为子字符串搜索目标的字符串表达式。
  • start - 可选-子字符串搜索的起始点,指定为正整数。
    从字符串开始的字符计数,从1开始计数。
    若要从字符串的开头开始搜索,请忽略此参数或指定从01开始。
    负数、空字符串、NULL或非数字值被视为0

CHARINDEX返回INTEGER数据类型。

描述

CHARINDEX在字符串中搜索子字符串。
如果找到匹配,则返回第一个匹配子字符串的起始位置,从1开始计算。
如果不能找到子字符串,CHARINDEX返回0

空字符串是一个字符串值。
因此,可以将空字符串用于任意一个字符串参数值。
start参数将空字符串值视为0
但是,请注意ObjectScript空字符串作为NULL传递给 SQL。

NULL不是SQL中的字符串值。
因此,为任何一个CHARINDEX字符串参数指定NULL都会返回NULL

CHARINDEX不能将%Stream.GlobalCharacter字段用于字符串或子字符串参数。尝试这样做会生成SQLCODE-37错误。可以使用SUBSTRING函数获取%Stream.GlobalCharacter字段并返回%String数据类型值以供CHARINDEX使用。

CHARINDEX区分大小写。使用其中一个大小写转换函数查找字母或字符串的大写和小写实例。

此函数提供了与Transact-SQL实现的兼容性。

CHARINDEX, POSITION, $FIND和INSTR

CHARINDEX, POSITION$FINDINSTR都在字符串中搜索指定的子字符串,并返回与第一个匹配项对应的整数位置。
CHARINDEXPOSITIONINSTR返回匹配子字符串的第一个字符的整数位置。
$FIND返回匹配子字符串结束后第一个字符的整数位置。
CHARINDEX$FINDINSTR支持指定子字符串搜索的起始点。
INSTR还支持从起始点指定子字符串出现。

下面的示例演示了这四个函数,指定了所有可选参数。
注意,在这些函数中,stringsubstring的位置不同:

SELECT POSITION('br' IN 'The broken brown briefcase') AS Position,CHARINDEX('br','The broken brown briefcase',6) AS Charindex,$FIND('The broken brown briefcase','br',6) AS Find,INSTR('The broken brown briefcase','br',6,2) AS Inst

示例

下面的示例在一个核苷酸序列中搜索子字符串TTAGGG的首次出现。
它返回7,这个子字符串在字符串中的位置:

SELECT CHARINDEX('TTAGGG','TTAGTCTTAGGGACATTAGGG')7

下面的示例搜索所有包含子字符串“Fred”Name字段值:

SELECT Name
FROM Sample.Person
WHERE CHARINDEX('Fred',Name)>0

以下示例使用SUBSTRING允许CHARINDEX搜索包含DNA核苷酸序列的%Stream.GlobalCharacter字段的前1000个字符,以查找子字符串TTAGGG的第一个匹配项:

SELECT CHARINDEX('TTAGGG',SUBSTRING(DNASeq,1,1000)) FROM Sample.DNASequences

以下示例匹配前10个字符后的子字符串:

SELECT CHARINDEX('Re','Reduce, Reuse, Recycle',10)16

下面的示例指定超出字符串长度的起始位置:

SELECT CHARINDEX('Re','Reduce, Reuse, Recycle',99)0

以下示例显示CHARINDEX处理空字符串(‘’)的方式与处理任何其他字符串值一样:

SELECT CHARINDEX('','Fred Astare'),CHARINDEX('A',''),CHARINDEX('','')

在上面的示例中,第一个和第二个CHARINDEX函数返回0(不匹配)。第三个函数返回1,因为空字符串与位置1处的空字符串匹配。

以下示例显示CHARINDEX不将NULL视为字符串值。为任一字符串指定NULL始终返回NULL

SELECT CHARINDEX(NULL,'Fred Astare'),CHARINDEX('A',NULL),CHARINDEX(NULL,NULL)

第二十七章 SQL函数 CHARINDEX相关推荐

  1. 第五十七章 SQL函数 $FIND

    文章目录 第五十七章 SQL函数 $FIND 大纲 参数 描述 $FIND, POSITION, CHARINDEX, INSTR 示例 第五十七章 SQL函数 $FIND 字符串函数,返回字符串中子 ...

  2. 第三十七章 SQL函数 CURRENT_TIMESTAMP

    文章目录 第三十七章 SQL函数 CURRENT_TIMESTAMP 大纲 参数 描述 精确到小数部分的秒 配置精度 日期和时间函数比较 示例 第三十七章 SQL函数 CURRENT_TIMESTAM ...

  3. 第七十七章 SQL函数 LENGTH

    文章目录 第七十七章 SQL函数 LENGTH 大纲 参数 描述 示例 第七十七章 SQL函数 LENGTH 返回字符串表达式中字符数的字符串函数. 大纲 LENGTH(string-expressi ...

  4. 第二十三章 SQL函数 CAST(二)

    文章目录 第二十三章 SQL函数 CAST(二) 转换位值 示例 第二十三章 SQL函数 CAST(二) 转换位值 可以将expr值转换为BIT以返回0或1. 如果expr为1或任何其他非零数值,则返 ...

  5. 第六十七章 SQL函数 ISNUMERIC

    文章目录 第六十七章 SQL函数 ISNUMERIC 大纲 参数 描述 示例 第六十七章 SQL函数 ISNUMERIC 测试有效数字的数值函数. 大纲 ISNUMERIC(check-express ...

  6. 第二十四章 SQL函数 CEILING

    文章目录 第二十四章 SQL函数 CEILING 大纲 参数 描述 示例 第二十四章 SQL函数 CEILING 数值函数,返回大于或等于给定数值表达式的最小整数. 大纲 CEILING(numeri ...

  7. 第二十九章 SQL函数 COALESCE

    文章目录 第二十九章 SQL函数 COALESCE 大纲 描述 返回值的数据类型 比较NULL处理函数 示例 第二十九章 SQL函数 COALESCE 返回第一个非空表达式的值的函数. 大纲 COAL ...

  8. 第二十二章 SQL函数 CAST(一)

    文章目录 第二十二章 SQL函数 CAST(一) 大纲 参数 描述 转换数字 字符串类型转换 转换为DATE.TIME和TIMESTAMP 转换NULL和空字符串 转换日期 第二十二章 SQL函数 C ...

  9. 第二十五章 SQL函数 CHAR

    文章目录 第二十五章 SQL函数 CHAR 大纲 参数 描述 示例 第二十五章 SQL函数 CHAR 返回具有在字符串表达式中指定的ASCII代码值的字符的字符串函数. 大纲 CHAR(code-va ...

最新文章

  1. 微服务注册中心的选型和思考
  2. mysql修改主键属性_mysql如何改变主键属性
  3. office365加速解决方案
  4. Java课堂测试01及感想
  5. 大数据之-Hadoop环境搭建_hadoop目录结构---大数据之hadoop工作笔记0019
  6. java中拦截器 过滤器 监听器都有什么区别
  7. 姆巴佩独造三球一战成名 阿里云打破世界杯流量纪录
  8. 【Java】synchronized与lock的区别
  9. 浅析人工智能自然语言生成定义
  10. Flash、Ajax各自的优缺点,在使用中如何取舍?
  11. sql 获取日期时分秒_[转载]ASP.NET和SQLserver获取当前日期时间:年月日、时分秒...
  12. 华为eNSP三层架构网络配置
  13. python如何设置当前工作路径?
  14. Inheritance: 'A' is an inaccessible base of 'B'
  15. RACV2022观点集锦 | 视觉基础模型
  16. 怎么部署项目解析域名_内部解析服务器部署
  17. 关于用例 前置条件等的理解(1)
  18. sql取每组最新数据
  19. break语句和continue语句的区别
  20. java简单搭建分布式架构

热门文章

  1. java使用itext填充pdf模板文字和图片,并使填充后的模板内容垂直水平居中
  2. Cryengine渲染引擎剖析
  3. 建行etc系统无法连接到服务器,投诉建行强行绑定ETC导致现在无法办理
  4. 绝地求生刺激战场模拟器怎么设置操作最流畅?刺激战场灵敏度最佳设置
  5. 有没有通话质量比较好的蓝牙耳机?高清通话的蓝牙耳机推荐
  6. 线上商城小程序的8大必备功能,让你的电商无往不利!
  7. c语言怎么自定义关机时间,C语言编写简单的定时关机程序
  8. Leetcode算法——65、有效数字(valid number)
  9. 无法安装服务vmware authorization service请确保您有足够的权限安装系统服务--解决方案:
  10. winserver2012R2虚拟机安装密钥