Oracle单行函数之(字符函数)

本文主要介绍的是Oracle中的单行函数的知识点。

 

Oracle中的单行函数有五种:字符函数、数字函数、日期函数、转换函数和通用函数。

字符函数

--观察转大写和小写的函数
SELECT UPPER('hello') FROM emp;
--结果
UPPER('HELLO')
--------------
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
HELLO
 
14 rows selected

--上面的效果在Oracle中提供了一个叫做dual来进行验证
SELECT UPPER('hello') FROM dual;
--验证转为小写
SELECT LOWER('HELLO') FROM dual;
--结果
LOWER('HELLO')
--------------
hello

1 rows selected
 
 
--对比下面的两个句子
SELECT * FROM emp WHERE ename='&str';
SELECT * FROM emp WHERE ename=UPPER('&str');
--“&”的操作属于替代变量的内容,不作重的

--将每一个雇员的姓名的首字母变为大写
SELECT INITCAP(ename) FROM emp;
--结果
INITCAP(ENAME)
--------------
Smith
Allen
Ward
Jones
Martin
Blake
Clark
Scott
King
Turner
Adams
James
Ford
Miller

14 rows selected

--列出每个姓名的长度
SELECT ename,LENGTH(ename) FROM emp;
ENAME      LENGTH(ENAME)
---------- -------------
SMITH                  5
ALLEN                  5
WARD                   4
JONES                  5
MARTIN                 6
BLAKE                  5
CLARK                  5
SCOTT                  5
KING                   4
TURNER                 6
ADAMS                  5
JAMES                  5
FORD                   4
MILLER                 6

14 rows selected

--用字符‘_’替换姓名中的所有的字母'A'
SELECT ename, REPLACE(ename,'A','_') FROM emp;
 
ENAME      REPLACE(ENAME,'A','_')
---------- -----------------------
SMITH      SMITH
ALLEN      _LLEN
WARD       W_RD
JONES      JONES
MARTIN     M_RTIN
BLAKE      BL_KE
CLARK      CL_RK
SCOTT      SCOTT
KING       KING
TURNER     TURNER
ADAMS      _D_MS
JAMES      J_MES
FORD       FORD
MILLER     MILLER
 
14 rows selected

--截取姓名的第3个到最后的字符
SELECT ename,SUBSTR(ename,3) FROM emp;
--结果
ENAME      SUBSTR(ENAME,3)
---------- ----------------
SMITH      ITH
ALLEN      LEN
WARD       RD
JONES      NES
MARTIN     RTIN
BLAKE      AKE
CLARK      ARK
SCOTT      OTT
KING       NG
TURNER     RNER
ADAMS      AMS
JAMES      MES
FORD       RD
MILLER     LLER
 
14 rows selected

--截取姓名的第2到5个字符
SELECT ename,SUBSTR(ename,2,5) FROM emp;
--结果
ENAME      SUBSTR(ENAME,2,5)
---------- -----------------
SMITH      MITH
ALLEN      LLEN
WARD       ARD
JONES      ONES
MARTIN     ARTIN
BLAKE      LAKE
CLARK      LARK
SCOTT      COTT
KING       ING
TURNER     URNER
ADAMS      DAMS
JAMES      AMES
FORD       ORD
MILLER     ILLER
 
14 rows selected

--截取姓名的后三个字符
SELECT ename,SUBSTR(ename,-3) FROM emp;
--结果
ENAME      SUBSTR(ENAME,-3)
---------- ----------------
SMITH      ITH
ALLEN      LEN
WARD       ARD
JONES      NES
MARTIN     TIN
BLAKE      AKE
CLARK      ARK
SCOTT      OTT
KING       ING
TURNER     NER
ADAMS      AMS
JAMES      MES
FORD       ORD
MILLER     LER
 
14 rows selected

面试题
请问SUBSTR()函数截取字符的时候下标是从0开始还是从1开始
        --在Oracle中,SUBSTR()函数从0或1开始效果都是一样的
         --SUBSTR()也可以把参数设置为负数,表示由后指定截取的开始点

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值