第六十四章 SQL函数 INSTR
第六十四章 SQL函数 INSTR
返回子字符串在字符串中的位置的字符串函数,具有可选的搜索起始点和出现次数。
大纲
INSTR(string,substring[,start[,occurrence]])
参数
string
- 要在其中搜索子字符串的字符串表达式。
它可以是列的名称、字符串字面值或另一个标量函数的结果,其中基础数据类型可以表示为任何字符类型(如CHAR
或VARCHAR2
)。substring
- 一个子字符串,被认为出现在字符串中。start
- 可选-子字符串搜索的起始点,指定为正整数。
从字符串开始的字符计数,从1
开始计数。
若要从字符串的开头开始搜索,请忽略此参数或指定从1开始。
起始值为0
、空字符串、NULL
或非数字值会导致INSTR
返回0。
指定start
为负数会导致INSTR
返回<null>
。occurrence
- 可选-一个非零整数,指定从起始位置搜索时返回哪个子字符串。
默认情况是返回第一个出现的位置。
INSTR
返回INTEGER
数据类型。
描述
INSTR
在字符串中查找子字符串,并返回子字符串的第一个字符的位置。
位置以整数形式返回,从字符串的开头开始计算。
如果substring
没有找到,则返回0
(0)。
如果传递给任何一个参数一个NULL
值,INSTR
将返回NULL
。
INSTR
支持指定start
作为子字符串搜索的起始点。
INSTR
还支持从起始点指定子字符串出现。
INSTR
是区分大小写的。
使用其中一个大小写转换函数来定位字母或字符串的大写和小写实例。
这个函数也可以通过调用INSTR()
方法从ObjectScript调用:
DHC-APP> w $SYSTEM.SQL.INSTR("The broken brown briefcase","br",6,2) 18
INSTR, CHARINDEX, POSITION和$FIND
INSTR
, CHARINDEX
, POSITION
和$FIND
都搜索一个字符串中指定的子字符串,并返回一个整数位置对应于第一个匹配。
CHARINDEX
、POSITION
和INSTR
返回匹配子字符串的第一个字符的整数位置。
$FIND
返回匹配子字符串结束后第一个字符的整数位置。
CHARINDEX
、$FIND
和INSTR
支持指定子字符串搜索的起始点。
INSTR还支持从起始点指定子字符串出现。
下面的示例演示了这四个函数,指定了所有可选参数。
注意,在这些函数中,string
和substring
的位置不同:
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
5 12 14 18
示例
下面的例子返回11
,因为“b”
是字符串中的第11
个字符:
SELECT INSTR('The quick brown fox','b',1) AS PosInt
11
下面的示例返回示例中每个名字的姓氏长度。
人表。
它定位用于将姓氏与name
字段的其余部分分隔开的逗号,然后从该位置减去1:
SELECT Name,
INSTR(Name,',',1)-1 AS LNameLen
FROM Sample.Person
下面的示例返回样本中每个名称中字母“B”
的第一个实例的位置。
人表。
因为INSTR
是区分大小写的,所以在执行搜索之前使用%SQLUPPER
函数将所有的名称值转换为大写。
因为%SQLUPPER
在字符串的开头添加了一个空格,所以这个示例减去1以获得实际的字母位置。
没有找到指定字符串的搜索将返回0
(0);
在本例中,由于减法为1
,这些搜索显示的值为-1
:
SELECT Name,
INSTR(%SQLUPPER(Name),'B',1)-1 AS BPos
FROM Sample.Person
相关文章
- SQL 中having 和where的区别分析
- sql server 生成随机数 rand函数
- 对于SQL的Join,在学习起来可能是比较乱的。我们知道,SQL的Join语法有很多inner的,有outer的,有left的,有时候,对于Select出来的结果集是什么样子有点不是很清楚。Coding Horror上有一篇文章,通过文氏图 Venn diagrams 解释了SQL的Join。我觉得清楚易懂,转过来。 交差集" cross join 《Linux命令行与shell脚本编程大全
- 第154章 SQL函数 UNIX_TIMESTAMP
- 第137章 SQL函数 TAN
- 第128章 SQL函数 %SQLSTRING
- 第124章 SQL函数 SECOND
- 第七十三章 SQL函数 LCASE
- 第二十三章 SQL函数 CAST(二)
- SQL LEN() 函数
- SQL COUNT DISTINCT 函数
- sql server 2008 相关基础(物理备份还原)
- 《Oracle SQL疑难解析》——1.3 将结果排序
- 《SQL入门经典(第5版)》一一6.3 事务控制与数据库性能
- 常见 SQL 语句的加锁分析
- pl/sql基础知识—过程快速入门
- sql server 索引总结三
- Sql语句varchar或nvarchar字段条件前加N的性能差异
- SQL- case when then else end 用法经验总结
- 浅析SQL的窗口函数是什么,怎么使用,为什么需要使用窗口函数以及利用窗口函数解决TopN问题
- sql server使用T-SQL读取扩展事件
- (4.48)sql server添加列并使用默认值填充已有记录
- (2.17)Mysql之SQL基础——日期函数
- sql server作业管理查看/进程管理查看命令
- SQL 加载
- SQL-日期函数
- SQL Server 查看正在运行的事务信息的 2 种方法。
- SQL中object_id函数的用法
- SQL Server 字符串截取
- Mysql 获取当前时间函数 (类似于sql server 中的 getDate())
- SQL中替换函数replace()的使用方法