练习字符处理函数(数据库表都是从1开始),我们用到一张“伪表” dual:

dual :dual 是一张只有一个字段,一行记录的表。dual 表也称之为'伪表',因为他不存储主题数据。如果我们不需要从具体的表来取得表中数据,而是单纯地为了得到一些我们想得到的信息,并要通过 select 完成时,就要借助 dual 表来满足结构化查询语言的格式。

CONCAT(arg1,arg2):连接值在一起 (CONCAT 函数有两个输入参数)

arg1:字符串类型。字符拼接的值。

arg2:字符串类型。字符拼接的值。

SQL> select concat('yxf','wj') from dual;

SUBSTR(arg1,arg2,arg3):截取子串(如果没有arg3,则是默认从arg2截取到末尾)。

arg1:字符串类型。原字符串,

arg2:整数类型。开始位置(开始位置可以是一个负数,-1 表示原串的最后一位,-2 则表示倒是第二位以此类推),

arg3:整数类型。截取个数。

SQL> select substr('yxfbjsxt',1,5) from dual;

SQL> select substr('yxfbjsxt',-1,5) from dual;

SQL> select substr('yxfbjsxt',1) from dual;

LENGTH(arg1):以数字值显示一个字符串的长度。

arg1:字符串类型。计算长度的字符串。

SQL> select length('yxfbjsxt') from dual;

INSTR(arg1,arg2):找到一个给定字符的数字位置(没找到则返回0)。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

SQL> select instr('yxfbjsxt','wj') from dual;

SQL> select instr('yxfbjsxt','sxt') from dual;

INSTR(arg1,arg2,arg3,arg4):指定查找位置以及出现的次数。

arg1:字符串类型。原字符串。

arg2:字符串类型。查找内容。

arg3:整数类型。开始位置。

arg4:整数类型。第几次出现。

SQL> select instr('yxfbjsxt','x',1,2) from dual;

LPAD(arg1,arg2,arg3):用给定的字符左填充字符串到给定的长度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

SQL> select lpad('yxfbjsxt',9,'250') from dual;

SQL> select lpad('yxfbjsxt',20,'250') from dual;

RPAD(arg1,arg2,arg3):用给定的字符右填充字符串到给定的长度。

arg1:字符串类型。原字符串。

arg2:整数类型。总长度。

arg3:字符串类型。填充的子字符串。

SQL> select rpad('yxfbjsxt',20,'250') from dual;

TRIM(arg1):从一个字符串中去除头(leading)或尾(trailing)或头尾两侧(both)的字符 (默认为头尾两侧) 如果 trim_character 或 trim_source 是一个文字字符,必须放在单引号中。

arg1 需要操作的字符串FROM 为关键字。

格式 1:需要去掉的内容 FROM 原字符串

SQL> select trim('h' from 'hellhowdh') from dual;

格式 2:leading|trailing|both 需要去掉的内容 FROM 原字符串(both的用法和上面的用法是一样的,上面就是默认波让后用                   法,去除头尾。)。

去头:

SQL> select trim(leading 'h' from 'hellhowdh') from dual;

去尾:

SQL> select trim(trailing 'h' from 'hellhowdh') from dual;

实例1:显示所有工作岗位名称从第 4 个字符位置开始包含字符串 REP 的雇员的信息,将雇员的姓和名连接显示在一起,还显                 示雇员名的长度,以及名字中字母 a 的位置。

SQL> select concat(first_name,Last_name),length(last_name),instr(last_name,'a') from employees where substr(job_id,4)='REP';

解析:先看题目中的需要显示的信息:1.雇员的姓和名连接显示在一起   2.显示雇员名的长度 3.名字中字母 a 的位置 这三个是我们需要提取的显示信息。然后确定是从哪张表查,最后用where子句去完成的查询要求:工作岗位名称从第 4 个字符位置开始包含字符串 REP 的雇员的信息。

实例2:显示名字是以 n 结束的雇员的数据,将雇员的姓和名连接显示在一起,还显示雇员名的长度,以及名字中字母 a 的位                   置。(以n结尾,有俩种方法去查找。1.用模糊查询 ‘%n’,2.用字符截取函数,只截取最后一个字母                                                   substr(last_name,-1)).

SQL> select concat(first_name,last_name) "name",length(concat(first_name,last_name)),instr(concat(first_name,last_name),'a') from employees where last_name like '%n';
SQL> select concat(first_name,last_name) "姓名:",length(concat(first_name,last_name)) "姓名长度:",instr(concat(first_name,last_name),'a') "姓名中a,出现的位置:" from employees where substr(last_name,-1)='n';

解析:首先明确显示的的内容:1.雇员的姓和名连接显示在一起 2.显示雇员名的长度 3.名字中字母 a 的位置。。再用where子句去查询对雇员的要求。显示名字是以 n 结束的雇员的数据。

实例3:将手机号中间四位用星号代替。

select replace(PHONE_NUMBER ,substr(PHONE_NUMBER ,5,4),'****') from employees;

解析:用到了嵌套函数:代替肯定是需要用replace函数,在replace函数中嵌套一个substr截取函数。

数据库Oracle字符处理函数的更多相关文章

  1. Oracle字符分隔函数(split)

    为了让 PL/SQL 函数返回数据的多个行,必须通过返回一个 REF CURSOR 或一个数据集合来完成.REF CURSOR 的这种情况局限于可以从查询中选择的数据,而整个集合在可以返回前,必须进行 ...

  2. 【转帖】循序渐进Oracle:数据库的字符集和字符集文件

    循序渐进Oracle:数据库的字符集和字符集文件 https://blog.csdn.net/Enmotech/article/details/100869162 2019年09月15日 18:23: ...

  3. Oracle的字符替换函数translate用法

    参考文档如下:http://www.banping.com/2009/05/18/oracle_function_translate/ Oracle提供了一个字符替换函数translate,不同于re ...

  4. Atitit 数据库 标准库  sdk 函数库 编程语言 mysql oracle  attilax总结

    Atitit 数据库 标准库  sdk 函数库 编程语言 mysql oracle  attilax总结 1.1. 常见的编程语言以及数据库 sql内部函数库标准化库一般有以下api1 1.2. 各个 ...

  5. 数据库Oracle函数之单行函数的介绍

    函数介绍: 函数:是数据库产品中提供的能够处理查询结果的方法. 函数能够用于下面的目的: • 执行数据计算 • 修改单个数据项 • 格式化显示的日期和数字 • 转换列数据类型 • 函数有输入参数,并且 ...

  6. 数据库Oracle 数字,字符,日期之间的相互转换

    数据类型转换分为俩种 . 隐式数据类型转换:当源数据的类型和目标数据的类型不同的时候,如果没有转换函数,就会发生隐式转换,也称自动转换. 对于直接赋值转换:  对于表达式赋值: 隐式转换的问题: 性能 ...

  7. Oracle的overlaps函数转换其他数据库语法

    首先,来介绍一下Oracle的overlaps函数的用法: overlaps函数是用来判断两个时间段是否有重叠的 比如说计算 (a,b),(c,d) 就可以写成: select * from dual ...

  8. Oracle substr() 字符截取函数

    1.substr函数格式   (俗称:字符截取函数) 格式1: substr(string string, int a, int b); 格式2:substr(string string, int a ...

  9. Oracle instr() 字符查找函数

    instr()函数的格式  (俗称:字符查找函数) 格式一:instr( string1, string2 )    /   instr(源字符串, 目标字符串) 格式二:instr( string1 ...

随机推荐

  1. PWM呼吸灯

    1.PWM简介       PWM是 Pulse Width Modulation 的缩写,中文意思就是脉冲宽度调 制,简称脉宽调制.它是利用微处理器的数字输出来对模拟电路进行控 制的一种非常有效的技 ...

  2. jQuery源码分析--为什么在参数列表中传入undefined

    (function(window, undefined){ //jQuery code; })(window); 为什么要传入undefined? 1.没有传入undefined: <!DOCT ...

  3. Windows对python文件加密

    最近项目需要对部分python文件加密,调研了部分方法都觉得不可行,最后采用了将python转换成so文件.pyd文件的方法.so文件,为liunx下的动态链接库文件,在windows下为dll文件, ...

  4. Python 基础 装饰器

    今天把学过的装饰器的知识进行回顾一下,说到装饰器,第一反应就是这个东西呢就是用来装逼的,为啥这样说呢,是应为没有这个东西照样可以干活,大部分工作都是可以做的,不管咋样还是把学过的装逼器梳理一下吧. 一 ...

  5. Xshell选中的同时把内容复制到剪贴板

    1.设置对话框 工具 -> 选项 -> 键盘和鼠标 -> 将选定的文本自动复制到剪贴板 2.贴图如下 2.1.打开设置对话框 2.2.设置键盘鼠标,左键复制

  6. java里的一些名词的意思

    JDK   java开发工具包(java development kit) JRE  java运行环境 (java runtime environment)

  7. Bootstrap——面包屑导航(Breadcrumbs)

    面包屑导航(Breadcrumbs)是一种基于网站层次信息的显示方式. Bootstrap 中的面包屑导航(Breadcrumbs)是一个简单的带有 .breadcrumb 类的无序列表. <o ...

  8. 从静态代理,jdk动态代理到cglib动态代理-一文搞懂代理模式

    从代理模式到动态代理 代理模式是一种理论上非常简单,但是各种地方的实现往往却非常复杂.本文将从代理模式的基本概念出发,探讨代理模式在java领域的应用与实现.读完本文你将get到以下几点: 为什么需要 ...

  9. Win32窗口消息机制 x Android消息机制 x 异步执行

    如果你开发过Win32窗口程序,那么当你看到android代码到处都有的mHandler.sendEmptyMessage和 private final Handler mHandler = new ...

  10. vim常用命令集合(精心整理)

    vim编辑器身为一个强大的linux平台编辑器,我就不多说他强大之处了,直接来简述下常用命令,提高自己使用编辑器的效率. 然后就先说下vim编辑器的模式,有的地方说三种,有的地方说两种,教程是按照两种 ...