SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用
在c#中可以用字符串的IndexOf方法来判断一个字符串中是否含有指定的字符。而在SQL SERVER中也就相关的函数来实现IndexOf的功能。CharIndex,InStr,PatIndex三个函数就是和IndexOf类似,最后介绍一个替换插入字符的函数Stuff。
下面就来说说SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用。
一、CHARINDEX 函数
SQL SERVER中的CharIndex作用:返回字符或者字符串在另一个字符串中的起始位置。
CHARINDEX 函数调用方法如下:
CHARINDEX ( expression1 , expression2 [ , start_location ] )
Expression1 是要到 expression2 中寻找的字符中,start_location 是 CHARINDEX 函数开始在 expression2 中找expression1 的位置。
CHARINDEX 函数返回一个整数,返回的整数是要找的字符串在被找的字符串中的位置。假如 CHARINDEX 没有找到要找的字符串,那么函数整数“0”。
例如:
SELECT CHARINDEX(‘a’,‘abcd’)
结果:1
注意:CHARINDEX是查找第一个匹配的子字符串的位置,如果第三个参数的start_location没有设置也就是从第一个字符开始查找。
SELECT CHARINDEX(‘a’,‘abcda’)–返回1
SELECT CHARINDEX(‘a’,‘abcda’,2)–返回5
二、InStr 函数
这个InStr在SQL SERVER没有这个函数在Oracle和mysql中有,但是参数有点不一样。
2.1、Oracle
返回某字符串在另一字符串中第一次出现的位置。
InStr 函数调用方法如下:
InStr([start, ]string1, string2[, compare])
参数
start:可选项。数值表达式,用于设置每次搜索的开始位置。如果省略,将从第一个字符的位置开始搜索。如果 start 包含 Null,则会出现错误。如果已指定 compare,则必须要有 start 参数。
string1:必选项。接受搜索的字符串表达式。
string2:必选项。要搜索的字符串表达式。compare可选项。指示在计算子字符串时使用的比较类型的数值。有关数值,请参阅“设置”部分。如果省略,将执行二进制比较。两个函数的性质非常效果一样就是搜索一个字符是否出现在另外一个字符串里面。
2.2、mysql
mysql的InStr就比较简单了,只有两个参数。INSTR(字段名, 字符串)。
例如:
mysql> select instr(‘abb’,‘b’);–返回2
三、PATINDEX 函数
SQL SERVER中的PATINDEX 函数返回字符或者字符串在另一个字符串或者表达式中的起始位置,PATINDEX 函数支持搜索字符串中使用通配符,这使PATINDEX函数对于变化的搜索字符串很有价值。和 CHARINDEX 函数一样,PATINDEX 函数返回搜索字符串在被搜索字符串中的起始位置。假如有这样一个PATINDEX 函数:
PATINDEX(’%BC%’,’ABCD’)
这个 PATINDEX 函数返回的结果是2,这和 CHARINDEX 函数一样。这里的 % 标记告诉 PATINDEX 函数去找字符串 “BC”,不管被搜索的字符串中在 “BC” 的前后有多少字符!
功能:返回模式在字符串中第一次出现的位置
patindex( ‘%pattern%’ , expression )
pattern:要查找的模式
expression:被找的字符串
select patindex(’%jinweida%’,‘123jinweida54’)
结果:4
四、Stuff功能
SQL SERVER中的stuff的功能:删除指定长度的字符串并在指定的起始点插入另一组字符。
STUFF ( character_expression , start , length , character_expression )
character_expression :操作的字符,
start:删除和插入的起始点,
length:删除的长度,
character_expression :要插入的字符
Select stuff(‘abcdef’,2,3,‘ghijk’)
结果:aghijkef
SQL中CharIndex函数、InStr 函数、PatIndex函数、Stuff函数区别与作用相关推荐
- SQL中char\varchar\text与nchar\nvarchar\ntext的区别
SQL中char\varchar\text与nchar\nvarchar\ntext的区别 定义 特点 定义 char char(n)是长度不可变的,用于表示非Unicode字符数据.n代表该数据类型 ...
- oracle怎么用charindex,SQL中Charindex和Oracle中对应的函数Instr对比
sql :charindex('字符串',字段)>0 charindex('administrator',MUserID)>0 oracle:instr(字段,'字符串',1,1) > ...
- dates.format_在SQL中使用DATES及其不同的内置函数NOW(),FORMAT()
dates.format Basically, when we are working with dates, we need to be sure that the format of the da ...
- sql中charindex用法
CHARINDEX作用 写SQL语句我们经常需要判断一个字符串中是否包含另一个字符串,但是SQL SERVER中并没有像C#提供了Contains函数,不过SQL SERVER中提供了一个叫CHAEI ...
- 一.oracle的SQL中group by使用的情况(与聚合函数的关系)
SELECT r.industry_1,r.industry_2,r.agent_id,r.agent_name, COUNT(DISTINCT r.customer_name_a)数据总量, COU ...
- access在sql中横向求和_access在sql中横向求和_求和还用Sum函数就out了,快捷键Alt+=一秒搞定,操作简单更高效......
日常工作进行数据整理的时候,求和这个操作对于大家是再熟悉不过了.简单的数据求和绝大多数同学都会想到一个函数,那就是Sum函数. 如上图所示,我们需要对人员的1-3月份数据进行横向和纵向的求和汇总.一般 ...
- sql中limit后参数有引号_mySql limit 函数后的参数是什么意思
展开全部 mySql limit 函数语法为SELECT * FROM table LIMIT [offset,] rows | rows OFFSET offset.LIMIT 接受一个或两个数字参 ...
- sql中两个字段进行拼接用concat()函数
多个字段进行拼接: 注意:如果有一个字段为空值,那拼接之后的字段为空值. 示例: 原始数据表为: select * from test_1 对"姓名"和"薪水" ...
- sql中条件放在on后面和where后面的区别
2019独角兽企业重金招聘Python工程师标准>>> 数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户. 在使用left jion时 ...
最新文章
- MySQL中的条件赋值
- zeal刷新不出来_推进重涂市场标准化,立邦率先推出刷新服务“八大验收标准”...
- excel和python建模_利用Excel学习Python:准备篇
- 02:Kubernetes集群部署——平台环境规划
- JQuery Datatables 获取实例及如何进行全局设置
- Linux安装JDK1.6 rpm.bin格式的安装配置
- POJ3264 Balanced Lineup【线段树】
- win7 蓝屏:stop 0x0000006b解决方法
- 字符串 拼接方法报错 not defined
- 7-5 有理数比较 (10 分)
- nuc10黑苹果无法wifi上网
- no resolver defined to resolve
- 001 量子计算与复数
- 基于 Windows系统的 KingbaseES 数据库软件安装指南(3. 安装前准备工作)
- 准PR控制的谐波抑制方法
- Win10在桌面上怎么添加此电脑、网络图标、回收站等图标?
- 网卡驱动卸载后一直安装失败的问题成功解决
- 交换机的基本工作原理与配置
- 计算机硬件培训ttp,通信新技术优秀教学平台(TTP).doc
- Python图像识别-Opencv01
热门文章
- 使用OPENCV简单实现具有肤质保留功能的磨皮增白算法
- Java下载PDF(jasperreports开发)
- Android开发:Android Studio常用快捷键汇总(Mac电脑和Windows电脑快捷键的对比)
- Mac的android真机调试
- QT与数据库的连接,查询和修改
- 苹果手机html吊起拍照,iphone12拍照技巧-iphone12拍照功能介绍
- 关于 Vulkan 简介 —— Android N 引入新的 3D 渲染引擎
- Python去除文本中的html标签
- 心法利器[42] | 润物细无声-残差网络
- R语言进行探索性因子分析EFA、除了R原生函数(princomp函数和factanal函数)以及psych包以外的其它包:FactoMineR、FAiR包、GPArotation包、nFactors包