oracle常用函数汇总——字符函数(可用于字面字符或数据库列)

本文介绍了一系列SQL中常用的字符串处理函数,包括截取、查找、连接、去除空格、转换ASCII值、大小写转换、替换、填充及条件判断等功能,并通过实例展示了如何使用这些函数来高效处理数据。

1,字符串截取
   select substr('abcdef',1,3) from dual

2,查找子串位置
   select instr('abcfdgfdhd','fd') from dual

3,字符串连接
   select 'HELLO'||'hello world' from dual;

4, 1)去掉字符串中的空格
    select ltrim(' abc') s1,
    rtrim('zhang ') s2,
    trim(' zhang ') s3 from dual

   2)去掉前导和后缀
    select trim(leading 9 from 9998767999) s1,
    trim(trailing 9 from 9998767999) s2,
    trim(9 from 9998767999) s3 from dual;

5,返回字符串首字母的Ascii值
   select ascii('a') from dual

6,返回ascii值对应的字母
   select chr(97) from dual

7,计算字符串长度 
   select length('abcdef') from dual

8,initcap(首字母变大写) ,lower(变小写),upper(变大写)
   select lower('ABC') s1,  
       upper('def') s2, 
       initcap('efg') s3
   from dual; 

9,Replace
   select replace('abc','b','xy') from dual;

10,translate
   select translate('abc','b','xx') from dual; -- x是1位

11,lpad [左添充] rpad [右填充](用于控制输出格式)
   select lpad('func',15,'=') s1, rpad('func',15,'-') s2 from dual;
   select lpad(dname,14,'=') from dept;

12, decode[实现if ..then 逻辑]   注:第一个是表达式,最后一个是不满足任何一个条件的值
   select deptno,decode(deptno,10,'1',20,'2',30,'3','其他') from dept;
   例:
   select seed,account_name,decode(seed,111,1000,200,2000,0) from t_userInfo//如果seed为111,则取1000;为200,取2000;其它取0
   select seed,account_name,decode(sign(seed-111),1,'big seed',-1,'little seed','equal seed') from t_userInfo//如果seed>111,则显示大;为200,则显示小;其它则显示相等

13 case[实现switch ..case 逻辑]

复制代码 代码如下:

    SELECT CASE X-FIELD 
         WHEN X-FIELD < 40 THEN 'X-FIELD 小于 40'
         WHEN X-FIELD < 50 THEN 'X-FIELD 小于 50'
         WHEN X-FIELD < 60 THEN 'X-FIELD 小于 60'
         ELSE 'UNBEKNOWN'
        END
   FROM DUAL

   
注:CASE语句在处理类似问题就显得非常灵活。当只是需要匹配少量数值时,用Decode更为简洁。

ORACLE PL/SQL 字符函数、数学函数、日期函数 --【字符函数】 --字符串截取substr(字段名,起始点,个数) select Name,substr(Name,2,4),substr(Name,0,3),substr(Name,-2,3),substr(Name,-2,1) from t1; --字符串从前面取三个(0开始) select Name,substr(Name,0,3) from t1; --字符串从后面取三个 select Name,substr(Name,-3,3),length(Name) 串长度 from t1; SELECT ASCII('A'),ASCII('B') from dual; select CHR(100),CHR(80) from dual; select CONCAT(CHR(65),CONCAT(CHR(67),CHR(98))) from dual; select CHR(65)||CHR(66)||CHR(76) from dual; --将每个单词的第一个字母大写其它字母小写返回。 select INITCAP('substr,abc,substring') from dual; --返回i在MISSISSIPPI中第3次出现的位置, select INSTR('Mississippi','i',5,3) from dual; select INSTR('Mississippi','i',-2,3) from dual; --返回的是字节 select INSTRB('Mississippi','i',5,3) from dual; select INSTRB('Mississippi','i',-2,3) from dual; --长度 select length('WHO ARE YOU') from dual; select nvl(null,'空') from dual; --小写 select lower('WHo are You') from dual; --LPAD左侧用字符串补足到一定长度 select LPAD('DFSDf................',9,'WHO') from dual; select LPAD('DFSD',9,'WHO') from dual; select LPAD('DFSD',9,'') from dual; select LPAD('DFSD',length('DFSD')+length('WHO......'),'WHO......') from dual; --把最左边的字符去掉,使其第一个字符不在其中 select ltrim('Mississippi','Mis') from dual; select ltrim('Mississippi','miD') from dual; --RPAD右侧用字符串补足到一定长度 select RPAD('DFSDf................',9,'WHO') from dual; select RPAD('DFSD',9,'WHO') from dual; select RPAD('DFSD',9,'') from dual; . . . . . . .
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值