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

oracle数据库基础——统计字符串中特定字符串总数的方法

sinye56 2024-10-04 23:55 7 浏览 0 评论

1.在Oracle11g及以上版本可以使用regexp_count关键字

语法: regexp_count(source_str, target_char [, position [, match_param]])

source_str:包含特定字符的字符串

target_char:特定字符

position: 从哪个下标开始搜索,可省略,但需>=1

match_param: 正则的匹配模式参数, 'i':忽略大小写; ‘c’或不配置该参数:不忽略大小写;此外还有‘n’、‘m’、‘x’等参数。

select regexp_count('abcdefgaaa','a') from dual

2.使用translate关键字

语法:translate(source_str, from_str, to_str)

source_str:待处理的字符串

from_str:需要转义的字符拼接而成的串

to_str:转义后的字符拼接而成的串

解释:

(1). 三个字符串中任意一个为null,其结果都是null

(2). from_str和to_str的对应关系,从左往右用一一对应, 对于在from_str中出现的重复字符,

且重复字符的下标在to_str该下标有值时,会同时忽略重复字符在from_str和to_str下标的值。

既重复字符以第一次出现的替换规则为准。

(3). from_str的长度大于to_str的长度时,对于from_str中多出来的字符可以理解为将其转换为空字符串。

多于字符串中已经有转义映射关系的字符,按照之前的映射关系转义。

(4). 按照转义规则替换source_str中的字符,并得到最终的结果。

(以上解释比较绕,可以简单的将from_str和to_str看做等长,长度不够的位用空字符代替,然后再转义source_str)

select translate('abcdeaa','a','c') from dual

select length(translate('abcdeaaabc','a'||'abcdeaaabc','a')) from dual

select length(translate(',abc,,,d,,ef,', ',' || ',abc,,,d,,ef,', ',')) from dual;

select length(',abc,,,d,,ef,') - length(replace(',abc,,,d,,ef,', ',','')) from dual

3.使用regexp_replace函数将目标字符串中的特定字符串替换为空,然后用目标字符串的长度-替换后字符串的长度,即为特定字符串的长度。

select (length('@-ab@@cd--ef@h-j') - length(regexp_replace('@-ab@@cd--ef@h-j','@-'))) / length('@-') from dual;

select length('@-ab@@cd--ef@h-j') from dual --16

select length(regexp_replace('@-ab@@cd--ef@h-j','@-')) from dual --14 --删除特定字符串后的长度

Oracle里的执行计划——使用explain plan命令

相关推荐

Linux 路由三大件

Linux路由涉及到三大组成部分:路由表、路由策略和网络地址转换(NAT)。1.路由表(RoutingTable):...

linux的永久静态路由

永久静态路由(PermanentStaticRoute)是一种路由器属性,用于在特定的子网或网段内定义一个固定不变的路由。当路由器收到发送至该路由器的请求时,它会使用该路由器中保存的路由表来计算下...

Linux route命令详解和使用示例(查看和操作IP路由表)

在Linux系统中,设置路由通常是为了解决以下问题:该Linux系统在一个局域网中,局域网中有一个网关,能够让机器访问Internet,那么就需要将这台机器的IP地址设置为Linux机器的默认路由。要...

一文掌握linux系统路由跟踪指令traceroute

概述traceroute我们可以知道信息从你的计算机到互联网另一端的主机是走的什么路径。当然每次数据包由某一同样的出发点(source)到达某一同样的目的地(destination)走的路径可能会不一...

没有公网IP,花生壳+SSH实现Windows连接远程Linux执行命令

在我们学习、工作中,常遇到需要使用Windows系统的电脑,来访问远程Linux系统进行相关部署操作,但远程Linux系统服务与本地Windows不在同一个局域网,而且Linux系统所在的外网IP是动...

打造你的家庭数据中心系列(三)PVE虚拟机安装爱快/iKuai软路由

一、软硬件要求1、安装好PVE虚拟环境的X86系统,32位爱快系统需要512MB以上内存,64位爱快系统需要4GB以上。...

OpenWrt路由器打造小型NAS服务(二):把家庭网络搬上云端(上)

家庭网络搬上云端意味着什么?通常我们在家里组建的局域网,离家之后就不能访问了。家庭网络上云,就意味着我们可以像访问百度一样,从Internet访问自己的家庭网络。这时我们可以做到:随时随地调校路由...

VMware安装openWRT软路由系统的步骤(图文教程)

本人是从众多媒体玩家的视频中无意了解到了软路由,它的功能非常强大,你想要的不想要的上面都有,重点是软路由可以安装到各种设备中(各种盒子、虚拟机、笔记本、x86设备、Arm设备),功能简直可以秒杀一切普...

一天一个Linux命令:网络管理(IP 地址配置)

方法一:使用nmcli命令nmcli介绍设备管理连接到设备断开设备连接设置网络连接配置静态IP连接配置IP方法二:使用ip命令...

Linux系统中的网络配置指南

在Linux系统中,正确的网络配置是确保系统顺利连接互联网和其他网络设备的关键。本文将为您介绍几个常用的Linux网络配置命令和技巧,帮助您更好地了解和配置网络设置。一、网络接口管理查看网络接口:使用...

Linux下的路由技术

在现代互联网环境中,网络服务的稳定性和可靠性至关重要。为了确保网络服务的高可用性和优化性能,Linux网络中的路由技术得到了广泛的应用。本文将介绍Linux下的路由技术,并提供相关的基础知识以及实践案...

LINUX 网络配置

【八】基本网络配置...

Linux进阶笔记-网络配置

本文档涵盖TCP/IP网络、网络管理和系统配置基础知识。Linux可以支持多个网络设备。设备名称已编号,从零开始向上计数。例如,具有两个NIC的计算机将有两个标记为eth0和eth1...

Linux-5种Linux系统下通过配置文件方式配置永久网络

1、SUSELinuxEnterpriseServer网络配置路径...

Linux添加路由的两种方法

在Linux中,您可以使用以下两种方法添加路由:使用"route"命令:使用"route"命令可以临时添加路由,这些路由在系统重新启动后将失效。下面是使用"ro...

取消回复欢迎 发表评论: