百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 优雅编程 > 正文

详解Oracle使用substr和instr截取字符串指定位置的字符

sinye56 2024-10-04 10:43 2 浏览 0 评论

概述

oracle一般截取某一个字符之前或之后的值都会用到substr()和instr()函数,抽时间整理了这方面,下面做个简单介绍。


1、instr函数

这是一个字符串处理函数,它在Oracle/PLSQL中是返回子字符串在源字符串中的位置。

函数定义如下:

/*
 * 返回子字符串在源字符串中的位置(字符串位置从1开始,而不是从0开始)
 * @param string 源字符串
 * @param substring 子字符串
 * @param position 检索位置,可省略(默认为1),参数为正时,从左向右检索,参数为负时,从右向左检索
 * @param occurrence 检索子字符串出现的次数,可省略(默认为1),值只能为正整数,否则会报错
 * @return 返回子字符串在源字符串中出现的位置(没找到返回0)
 */
instr(string, substring, position, occurrence);

实例

SELECT INSTR('hello world', 'l') FROM DUAL; --结果:3
SELECT INSTR('hello world', 'l', 5) FROM DUAL; --结果:10
SELECT INSTR('hello world', 'l', -1) FROM DUAL; --结果:10
SELECT INSTR('hello world', 'l', 2, 2) FROM DUAL; --结果:4
SELECT INSTR('hello world', 'l', -3, 3) FROM DUAL; --结果:0

2、substr函数

这是一个字符串截取函数,它返回的是截取的字符串。

函数定义如下:

/*
 * 截取字符串(字符串位置从1开始,而不是从0开始)
 * @param string 源字符串
 * @param position 检索位置,参数为正时,从左向右检索,参数为负时,从右向左检索
 * @param substring_length 要截取的长度,可省略(默认从position位开始截取全部),值小于1时返回空字符串
 * @return 返回截取的字符串
 */
substr(string, position, substring_length);

实例

SELECT SUBSTR('hello world', 2) FROM DUAL; --结果:ello world
SELECT SUBSTR('hello world', -2) FROM DUAL; --结果:ld
SELECT SUBSTR('hello world', 4, 4) FROM DUAL; --结果:lo w
SELECT SUBSTR('hello world', -4, 3) FROM DUAL; --结果:orl
SELECT SUBSTR('hello world', 4, -1) FROM DUAL; --结果:空字符串

3、SUBSTR和INSTR结合

可以将SUBSTR和INSTR结合使用来实现截取字符串中特定字符前后的字符串

实例:

1) 截取“hello,world”字符串中“,”分隔符之前的字符串

SELECT SUBSTR('hello,world', 1, INSTR('hello,world', ',')-1) FROM DUAL;
--结果:hello

2)截取“hello,world”字符串中“,”分隔符之后的字符串

SELECT SUBSTR('hello,world', INSTR('hello,world', ',')+1) FROM DUAL;
--结果:world

3)截取“hello,world,HH”字符串中第1次出现的“,”字符和第2次出现的“,”字符之间的字符串

SELECT SUBSTR('hello,world,HH', INSTR('hello,world,HH', ',',1)+1, INSTR('hello,world,HH', ',', 2)-1) FROM DUAL;
--结果:world

关于oracle的INSTR、SUBSTR用法就介绍到这了,掌握这两个还是很有必要的,特别是平时写sql的时候。

后面会分享更多DBA方面内容,感兴趣的朋友可以关注下!

相关推荐

Linux在线安装JDK1.8

首先在服务器pingwww.baidu.com查看是否可以连网然后就可以在线下载一、下载安装JDK1.81、在下载安装的同时做好一些准备工作...

Linux安装JDK,超详细

1、了解RPMRPM是Red-HatPackageManager(RPM软件包管理器)的缩写,这一文件格式名称虽然打上了RedHat的标志,但是其原始设计理念是开放式的,现在包括OpenLinux...

Linux安装jdk1.8(超级详细)

前言最近刚购买了一台阿里云的服务器准备要搭建一个网站,正好将网站的一个完整搭建过程分享给大家!#一、下载jdk1.8首先我们需要去下载linux版本的jdk1.8安装包,我们有两种方式去下载安装...

Linux系统安装JDK教程

下载jdk-8u151-linux-x64.tar.gz下载地址:https://www.oracle.com/technetwork/java/javase/downloads/index.ht...

干货|JDK下载安装与环境变量配置图文教程「超详细」

1.JDK介绍1.1什么是JDK?SUN公司提供了一套Java开发环境,简称JDK(JavaDevelopmentKit),它是整个Java的核心,其中包括Java编译器、Java运行工具、Jav...

Linux下安装jdk1.8

一、安装环境操作系统:CentOSLinuxrelease7.6.1810(Core)JDK版本:1.8二、安装步骤1.下载安装包...

Linux上安装JDK

以CentOS为例。检查是否已安装过jdk。yumlist--installed|grepjdk或者...

Linux系统的一些常用目录以及介绍

根目录(/):“/”目录也称为根目录,位于Linux文件系统目录结构的顶层。在很多系统中,“/”目录是系统中的唯一分区。如果还有其他分区,必须挂载到“/”目录下某个位置。整个目录结构呈树形结构,因此也...

Linux系统目录结构

一、系统目录结构几乎所有的计算机操作系统都是使用目录结构组织文件。具体来说就是在一个目录中存放子目录和文件,而在子目录中又会进一步存放子目录和文件,以此类推形成一个树状的文件结构,由于其结构很像一棵树...

Linux文件查找

在Linux下通常find不很常用的,因为速度慢(find是直接查找硬盘),通常我们都是先使用whereis或者是locate来检查,如果真的找不到了,才以find来搜寻。为什么...

嵌入式linux基本操作之查找文件

对于很多初学者来说都习惯用windows操作系统,对于这个系统来说查找一个文件简直不在话下。而学习嵌入式开发行业之后,发现所用到的是嵌入式Linux操作系统,本想着跟windows类似,结果在操作的时...

linux系统查看软件安装目录的方法

linux系统下怎么查看软件安装的目录?方法1:whereis软件名以查询nginx为例子...

Linux下如何对目录中的文件进行统计

统计目录中的文件数量...

Linux常见文件目录管理命令

touch用于创建空白文件touch文件名称mkdir用于创建空白目录还可以通过参数-p创建递归的目录...

Linux常用查找文件方法总结

一、前言Linux系统提供了多种查找文件的命令,而且每种查找命令都具有其独特的优势,下面详细总结一下常用的几个Linux查找命令。二、which命令查找类型:二进制文件;...

取消回复欢迎 发表评论: