Oracle中常用的函数——字符类型函数

一、字符函数
1. UPPER(str): 将字符串str中的所有字母转换为大写;
例:
SELECT
    EMPLOYEE_ID , FIRST_NAME , UPPER(FIRST_NAME)
FROM employees emp FETCH FIRST 5 ROWS ONLY;

EMPLOYEE_ID FIRST_NAME         UPPER(FIRST_NAME)
----------- -------------------- --------------------
    174 Ellen         ELLEN
    166 Sundar         SUNDAR
    130 Mozhe         MOZHE
    105 David         DAVID
    204 Hermann         HERMANN
    
2. LOWER(str): 将字符串str中的所有字母转换为小写;
例:
SELECT
    EMPLOYEE_ID , FIRST_NAME , LOWER(FIRST_NAME)
FROM employees emp FETCH FIRST 5 ROWS ONLY;

EMPLOYEE_ID FIRST_NAME         LOWER(FIRST_NAME)
----------- -------------------- --------------------
    174 Ellen         ellen
    166 Sundar         sundar
    130 Mozhe         mozhe
    105 David         david
    204 Hermann         hermann

3. INITCAP(str): 将字符串str中的每个单词的首字母改为大写
例:
SELECT
    EMPLOYEE_ID , JOB_ID , INITCAP(JOB_ID) AS "Job_Id"
FROM employees emp FETCH FIRST 5 ROWS ONLY;

EMPLOYEE_ID JOB_ID     Job_Id
----------- ---------- ----------
    206 AC_ACCOUNT Ac_Account
    205 AC_MGR     Ac_Mgr
    200 AD_ASST    Ad_Asst
    100 AD_PRES    Ad_Pres
    101 AD_VP      Ad_Vp

4. CONCAT(str1 , str2): 将字符串str1和str2做字符串连接
注意:在Oracle中,CONCAT(str1 , str2) 函数仅支持两个参数
例:
SELECT
    EMPLOYEE_ID ,concat(CONCAT(FIRST_NAME, ' ') , LAST_NAME) FULL_NAME  
FROM employees emp FETCH FIRST 5 ROWS ONLY;

EMPLOYEE_ID FULL_NAME
----------- ----------------------------------------------
    100 Steven King
    101 Neena Kochhar
    102 Lex De Haan
    103 Alexander Hunold
    104 Bruce Ernst
    
5. SUBSTR(str,pos[,length]): 将字符串str从第pos个字符开始,截取length个字符长度。
注意:length参数可以省略,表示截取到字符串str的末尾
例:
SELECT SUBSTR('ABCDEFG',3,3) FROM DUAL;

SUB
---
CDE

SELECT SUBSTR('ABCDEFG',3) FROM DUAL;

SUBST
-----
CDEFG

6. LPAD(str,length,str1): 将字符串str用str1从左边填充到length个字符
   RPAD(str,length,str2): 将字符串str用str2从右边填充到length个字符
例:
SQL> SELECT LPAD('BCD' , 5 , 'A') FROM dual;

LPAD('BCD' , 5 , 'A')
-----
AABCD

SQL> SELECT RPAD('BCD', 6 ,'EF') FROM dual;

RPAD('BCD', 6 ,'EF')
------
BCDEFE

7. TRIM(str)/LTRIM(str)/RTRIM(str): 去掉字符串str两端/最左边/最右边的空格
例:
SELECT TRIM('     ABC    ') , LENGTH('     ABC    ') , LENGTH(TRIM('     ABC    ') ) FROM dual;

TRI LENGTH('ABC') LENGTH(TRIM('ABC'))
--- ------------- -------------------
ABC           12            3

SELECT LTRIM('     ABC    ') , LENGTH('     ABC    ') , LENGTH(LTRIM('     ABC    ') ) FROM dual;

LTRIM(' LENGTH('ABC') LENGTH(LTRIM('ABC'))
------- ------------- --------------------
ABC           12             7

SELECT RTRIM('     ABC    ') , LENGTH('     ABC    ') , LENGTH(RTRIM('     ABC    ') ) FROM dual;
RTRIM('A LENGTH('ABC') LENGTH(RTRIM('ABC'))
-------- ------------- --------------------
     ABC        12              8

8. REPLACE(str,str1,str2): 将字符串str中,能用str1匹配的部分替换为str2
例:
SQL> SELECT REPLACE('ABCAAAA','AA','BC') FROM dual;

REPLACE('ABCAAAA','AA','BC')
-------
ABCBCBC

9. INSTR(str,str1[,index][,num]): 返回字符串str中,从第index个字符开始,str1第num次出现的时的位置;与MySQL中的LOCATE函数作用相似
例:
SQL> SELECT INSTR('ABCAAAA','AA') FROM dual;

INSTR('ABCAAAA','AA')
---------------------
            4
            
SQL> SELECT INSTR('ABCAAAA','AA',5) FROM dual;

INSTR('ABCAAAA','AA',5)
-----------------------
              5
              
SQL> SELECT INSTR('ABCAAAA','AA',5,2) FROM dual;

INSTR('ABCAAAA','AA',5,2)
-------------------------
            6
            
10. LENGTH(str)/LENGTHB(str): 返回字符串str的字符/字节长度
注意:ORACLE的LENGTH(str)函数需要和MySQL中的LENGTH(str)做区分
            字节长度                字符长度
ORACLE        LENGTHB(str)            LENGTH(str)
MySQL        LENGTH(str)                CHAR_LENGTH(str)

例:

SQL> SELECT LENGTH('字符长度') FROM dual;

LENGTH('字符长度')
------------------
         4

SQL> SELECT LENGTH('Character_length') FROM dual;

LENGTH('CHARACTER_LENGTH')
--------------------------
            16

SQL> SELECT LENGTHB('字节长度') FROM dual;

LENGTHB('字节长度')
-------------------
         12

SQL> SELECT LENGTHB('Byte_length') FROM dual;

LENGTHB('BYTE_LENGTH')
----------------------
            11

11. REGEXP_COUNT(str,regexp [, pos ][, match_param]): 返回字符串str中,从第pos个字符开始,在match_param形式下,符合正则表达式regexp的子串的个数
其中:
match_param的参数值有:
‘i’ 用于不区分大小写的匹配
‘c’ 用于区分大小写的匹配
‘x’ 忽略空格字符。默认情况下,空格字符与自身相匹配。
‘n’ 允许句点(.)作为通配符去匹配换行符。如果省略该参数,则句点将不匹配换行符
‘m’ 将源串视为多行。即Oracle 将^和$分别看作源串中任意位置任何行的开始和结束,而不是仅仅看作整个源串的开始或结束。如果省略该参数,则Oracle将源串看作一行。

例:
SQL>
SQL> SELECT REGEXP_COUNT('123123123123', '123', 7 ) FROM dual;

REGEXP_COUNT('123123123123','123',7)
------------------------------------
                   2

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值