Oracle常用字符串操作

参考:

一、oracle操作字符串:拼接、替换、截取、查找;

二、oracle中的trim函数使用介绍

--字符串去空格
--输出:a  b   c;
SELECT TRIM('  a  b   c  ') || ';' FROM dual;
SELECT TRIM(BOTH FROM '  a  b   c  ') || ';' FROM dual;
--输出:  a  b   c;
SELECT TRIM(TRAILING FROM '  a  b   c  ') || ';' FROM dual;
SELECT RTRIM('  a  b   c  ') || ';' FROM dual;
--输出:a  b   c  ;
SELECT TRIM(LEADING FROM '  a  b   c  ') || ';' FROM dual;
SELECT LTRIM('  a  b   c  ') || ';' FROM dual;--字符串去除指定字符
--注意:只能指定一位字符
--输出:111;
SELECT TRIM('0' from '000111000') || ';' FROM dual;
--输出:111;
SELECT TRIM(BOTH '0' from '000111000') || ';' FROM dual;
--输出:000111;
SELECT TRIM(TRAILING '0' from '000111000') || ';' FROM dual;
--输出:111000;
SELECT TRIM(LEADING '0' from '000111000') || ';' FROM dual;--字符串替换 
--将原字符(第一个参数)中的字符(第二个参数)替换为新的字符(第三个参数)
--输出:隔壁邻居:王五
SELECT REPLACE('隔壁邻居:张三', '张三', '王五') FROM dual;--字符串查找
--查找字符串(参数一)中,字符(参数二)从位置(参数三)开始,第几次(参数四)出现的位置,找不到返回0
--注意:位置(参数二)从1开始,否则找不到。返回结果为位置,从1开始
--输出:1
SELECT INSTR('隔壁邻居:张三', '隔', '1', '1') FROM dual;
--输出:0
SELECT INSTR('隔壁邻居:张三', '隔', '0', '1') FROM dual;--字符串截取
--从位置(参数二)开始,截取字符串(参数一),N(参数三)个字符
--注意:位置(参数二)从1开始,可以小于1,效果和1相同。字符个数(参数三)可省略,省略时默认截取到字符串末尾
--输出:隔壁邻
SELECT SUBSTR('隔壁邻居:张三', 1, 3) FROM dual;
--输出:居:张三
SELECT SUBSTR('隔壁邻居:张三', 4) FROM dual;--字符串查找+截取
--截取某个字符串后的字符
--思路一:用INSTR定位位置,再用SUBSTR截取
--输出:张三,年龄:18
SELECT SUBSTR('隔壁邻居:张三,年龄:18', INSTR('隔壁邻居:张三', ':', '1', '1') + 1) FROM dual;
--思路二:直接使用字符串替换
--输出:张三,年龄:18
SELECT REPLACE('隔壁邻居:张三,年龄:18', '隔壁邻居:', '') FROM dual;--截取某个字符串后,另一个字符串前的字符
--思路一:大致与前面一样,只是需要再根据位置计算一下截取字符串的长度(长度=后一个字符位置-1-前一个字符长度)
--输出:张三
SELECT SUBSTR('隔壁邻居:张三,年龄:18',INSTR('隔壁邻居:张三,年龄:18',':','1','1') + 1,(INSTR('隔壁邻居:张三,年龄:18', ',', '1', '1')-1-INSTR('隔壁邻居:张三,年龄:18', ':', '1', '1')))
FROM dual;
--思路二:截两次
--第一次
--输出:隔壁邻居:张三
SELECT SUBSTR('隔壁邻居:张三,年龄:18', 1, INSTR('隔壁邻居:张三,年龄:18', ',', '1', '1') - 1) FROM dual;
--第二次
--输出:张三
SELECT SUBSTR('隔壁邻居:张三', INSTR('隔壁邻居:张三', ':', '1', '1') + 1) FROM dual;
--一步到位
--输出:张三
SELECT SUBSTR(SUBSTR('隔壁邻居:张三,年龄:18', 1, INSTR('隔壁邻居:张三,年龄:18', ',', '1', '1') - 1),INSTR('隔壁邻居:张三,年龄:18', ':', '1', '1') + 1) 
FROM dual;

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/273301.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linux下面安装maven

maven作为最近比较火的项目管理工具,对项目的jar包及其开元添加相应的插件的管理,很方便。 安装maven: 在官网上面去下载最新的maven的压缩包,apache-maven-3.3.1-bin.tar.gz. 将下载的压缩包保存/usr/local/maven下,进…

Hibernate懒加载问题

刚开始接触这种数据持久化框架时,使用的是Maybatis,相较于最原始的JDBCSQL模式,Maybatis简直就是神器,特别是在用过Maybatis动态SQL后,简直就开始对Maybatis爱不释手。后来工作要求,又接触到了Hibernate&am…

实现点击按钮后,倒计时60秒才能再次点击

转载于:https://www.cnblogs.com/liu201312/p/4447710.html

通过栈(Stack)实现对树的遍历

说到数的遍历树,长期以来的第一印象都是通过递归去实现。然而今天看了某位前辈的代码,才发现使用栈去实现遍历是那么简单。理论上通过数组也是可以实现同等功能的,毕竟Stack也是通过数据去实现的。 package com.sysway.ui.widget;import jav…

设计模式_01_单一原则

设计模式_01_单一原则 package designPatternOf_01; /*** 单一原则示例:动物呼吸* 引入的问题:鱼不吸空气,吸水*/ public class SinglePrinciple_01 {public static void main(String[] args) {Animal animalnew Animal();animal.breath(&quo…

StroyBoard中UICollectionView中添加Header和footer

到Storyboard中,选择collection view controller中的"Collection View"。在Attributes inspector中,选择"Section Header"和"Section Footer",一旦选中你就会在屏幕中看到下面的的显示: 最重要的是&#xff0c…

树形结构数据汇总查询解决方案+优化求助

最近遇到一个地区数据汇总的问题,地区下的地址呈树形结构,(简化结构)如A市下有B、C区,B区下有D、E街道。先要查询所有地区的人数(包括子区域),如A的人数直属A的人数B的人数C的人数D的…

find 是区分大小写的。对于不区分大小写的写法(转载)

转自:http://justwinit.cn/post/3633/ 默认情况下,find 是区分大小写的。对于不区分大小写的 find,将 -iname 测试替换为 -name 测试。find downloads -iname "*.gif"downloads/.xvpics/Calendar05_enlarged.gifdownloads/lcmgcfe…

ORACLE会话以及SQL执行信息查询

select t.BLOCKING_SESSION,t.SQL_ID,t.SID,t.SERIAL#,t.MACHINE,t.PROGRAM,t.ACTION,t.LOGON_TIME "登录时间",trunc((sysdate - t.LOGON_TIME) * 24 * 60 * 60) || s "登录时长",trunc(nvl(s.ELAPSED_TIME / decode(s.EXECUTIONS, 0, 1, s.EXECUTIONS) /…

Dom4j 学习笔记

dom4j 是一种解析 XML 文档的开放源代码 XML 框架。dom4j下载地址 本文主要记载了一些简单的使用方法。 一、xml文件的解析 dom4j既可以解析普通的xml文件&#xff0c;也可以解析一个InputStream&#xff0c;先看看xml文件长什么样子&#xff1a; <books><book>&l…

交叉连接(CROSS JOIN)的实际应用

一次偶然的机会&#xff0c;使用到了万年不用的交叉连接&#xff08;CROSS JOIN&#xff09; 业务场景如下&#xff1a; 1、存在多个运营商&#xff0c;每个运营商下面都有各种类型的设备&#xff0c;不同运营商的设备不完全相同&#xff1b; 2、任何设备有且仅有两种用途‘…

Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结

Atitit.操作注册表 树形数据库 注册表的历史 java版本类库总结 1. 注册表是树形数据库 1 2. 注册表的由来 1 3. Java 操作注册表 2 3.1. 使用Preferences API &#xff08;限定访问路径了&#xff09; 2 3.2. 使用JNI 3 3.3. Jregistrykey 推荐 4 3.4. Jregistry 4 4. org.ope…

C# xml文件读取与修改

c#读写xml文件已知有一个XML文件&#xff08;bookstore.xml&#xff09;如下&#xff1a; Code<?xml version"1.0" encoding"gb2312"?><bookstore> <book genre"fantasy" ISBN"2-3631-4"> <title>Obero…

外连接从表过滤

1、使用left join时从表的过滤 WITH a AS( SELECT A aid FROM dual UNION ALL SELECT B FROM dual UNION ALL SELECT C FROM dual UNION ALL SELECT D FROM dual UNION ALL SELECT E FROM dual ), b AS( SELECT A aid,10 num,1 type FROM dual UNION ALL SELECT B,20,2 FROM d…

php pcntl 多进程学习

1、捕获子进程退出&#xff08;监听SIGCHLD信号&#xff0c;然后调用 pcntl_wait 函数&#xff09; declare(ticks1);pcntl_signal(SIGCHLD, "sig_handler"); function sig_handler($signo) {switch ($signo) {case SIGCHLD:$status 0;$child_id pcntl_wait($statu…

Oracle取最大/最小值函数

SELECT greatest(DATE2020-01-01,DATE2020-01-03,DATE2020-01-05,DATE2020-01-07,DATE2020-01-09) 最大值, least(1,3,5,7,9) 最小值 FROM dual; SELECT 1 FROM dual WHERE greatest(1,3,5,7,9) > 8;

ORACLE将查询字段指定为某种类型

SELECT CAST(张三 AS VARCHAR2(20)) name FROM dual; 一般来说在查询时很少有用到这种语句&#xff0c;但是使用CREATE TABLE ... AS SELECT ...语句的时候这个就很好用了 --建表 CREATE TABLE test01 AS SELECT 张三 name FROM dual; --正常插入数据 INSERT INTO test01 SEL…

Less Css 教程

http://www.w3cplus.com/css/less&#xff0c;这个东西太吊了&#xff01;转载于:https://www.cnblogs.com/wln3344/p/4479014.html

分组查询最晚一条数据(ORACLE)

现有客户表&#xff0c;交费表&#xff0c;需查询每个存在交费记录客户的最后一笔交费信息 这里提供两种方式 注&#xff1a;客户不会在同一时间有两条交费&#xff0c;SQL可直接执行 --查询客户名称&#xff0c;最后一笔交费时间&#xff0c;以及最后一笔交费金额 WITH --客…

ORACLE循环中使用序列

在批量生成数据时&#xff0c;经常会用到序列的Nextval&#xff0c;今天碰到了这样的情况&#xff0c;日常记录&#xff0c;下附解决方案。先看这段脚本 DECLARE i INTEGER; BEGINFOR cur IN 1..5 LOOPi : DomainObjectId.Nextval;dbms_output.put_line(i);END LOOP; END; 编…