oracle函数学习整理--字符处理

简介:     一直以来很少整理在数据库方面的知识,现在也该是时候整理一下。可惜突然不知道该从哪里开始……想想Oracle和SQL Server给我的第一印象区别就是他们的构架,这东西我还是搞不太清楚只是稍...

    一直以来很少整理在数据库方面的知识,现在也该是时候整理一下。可惜突然不知道该从哪里开始……想想Oracle和SQL Server给我的第一印象区别就是他们的构架,这东西我还是搞不太清楚只是稍微有点点感觉而已,算了还是先整理一下函数吧,免的学点又丢点……

字符处理函数(常用的)

1、Initcap(char):将char中空格格开的单词首字母大写


Examples
The following example capitalizes each word in the string,char can be of any of the datatypes CHAR, VARCHAR2, NCHAR, or NVARCHAR2. The return value is the same datatype as char.

SELECT INITCAP('the soap') "Capitals" FROM DUAL;

Capitals
---------
The Soap
 
2、lower(char) / upper(char) :将char全部变成小写 / 将char全部变成大写


 Examples LOWER / UPPER returns char, with all letters lowercase. char can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The return value is the same datatype as char. --小写The following example returns a string in lowercase: SELECT LOWER('MR. SCOTT MCMILLAN') "Lowercase" FROM DUAL;

Lowercase
--------------------
mr. scott mcmillan  --大写The following example returns a string in uppercase:SELECT UPPER('Large') "Uppercase" FROM DUAL;

Upper
-----
LARGE

补充:由于Oracle有一个特性就是添加进去的记录数据,它会自动转化为大写,因此比如做模糊查询的时候,可能需要查找姓名以"j"开头的人。

Select * from employee where name like 'j%' --这样是查不到数据的
这个时候可以用到上面的函数
Select * from employee where name like upper('j%')
同样也可以用这个方法
Select * from employee where lower(name) like 'j%'


 

 

3、Ltrim(char,set) / Rtrim(char,set):在char中替换set中的字符

 

Examples
The following example trims the letters "xy" from the right side of a string:

SELECT RTRIM('BROWNINGyxXxy','xy') "RTRIM example"
FROM DUAL;
 
RTRIM examp
-----------
BROWNINGyxX

个人感觉Oracle带的这个例子并不能说明什么东西,于是补充一个:select Rtrim('xybroxydxy','xy') "X" from dual;

RTRIM X
--------
xybroxyd

select Rtrim('xybroxy1xy1','xy') "X" from dual;

RTRIM X
-----------
xybroxy1xy1

可以看出只要set不出现在char的右边,那么就不会出现替换。(Ltrim同理)
 


4、Translate(char,from,set):把char中的from字符用set替换,from与set one-by-one对应


You cannot use an empty string for to_string to remove all characters in from_string from the return value. Oracle interprets the empty string as null, and if this function has a null argument, then it returns null.


Examples
The following statement translates a license number. All letters 'ABC...Z' are translated to 'X' and all digits '012 . . . 9' are translated to '9':

SELECT TRANSLATE('2KRW229',
'0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ',
'9999999999XXXXXXXXXXXXXXXXXXXXXXXXXX') "License"
     FROM DUAL;
 
License
--------
9XXX999


The following statement returns a license number with the characters removed and the digits remaining:

SELECT TRANSLATE('2KRW229',
   '0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ', '0123456789')
   "Translate example"
     FROM DUAL;
 
Translate example
-----------------
2229

 

5、Replace(char,searchString,set):在char中查找searchString字符串用set来替换


 
 

Examples

The following example replaces occurrences of "J" with "BL":

SELECT REPLACE('JACK and JUE','J','BL') "Changes"
     FROM DUAL;

Changes
--------------
BLACK and BLUE

select replace('1212xy2323xy23','xy','**') from dual;

REPLACE('1212X
--------------
1212**2323**23

Replace 与 trunslate 的区别:
The Replace function provides functionality related to that provided by the TRANSLATE function. TRANSLATE provides single-character, one-to-one substitution. REPLACE lets you substitute one string for another as well as to remove character strings.

 

6、TRIM
( [{ { LEADING | TRAILING | BOTH } [trim_character])
   | trim_character
   }
   FROM
  ]
  trim_source
)

TRIM enables you to trim leading or trailing characters (or both) from a character string. If trim_character or trim_source is a character literal, then you must enclose it in single quotes.
Both trim_character and trim_source can be any of the datatypes CHAR, VARCHAR2, NCHAR, NVARCHAR2, CLOB, or NCLOB. The string returned is of VARCHAR2 datatype and is in the same character set as trim_source.

Examples

This example trims leading and trailing zeroes from a number:

SELECT TRIM (0 FROM 0009872348900) "TRIM Example"
   FROM DUAL;

TRIM Example
------------
    98723489


目录
相关文章
|
SQL Oracle 算法
|
SQL 存储 Oracle
【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
【YashanDB知识库】Oracle pipelined函数在YashanDB中的改写
|
Oracle 关系型数据库 网络安全
Oracle 19c 安装教程学习
Oracle 19c 安装教程学习
6229 2
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
SQL Oracle 关系型数据库
|
Oracle 关系型数据库 数据挖掘
|
NoSQL Oracle 关系型数据库
MongoDB与Oracle:管道函数兼容之道
【4月更文挑战第20天】
331 2
|
Oracle 关系型数据库 数据管理
Oracle常用系统函数之日期和时间类函数:时空穿梭者的魔法棒
【4月更文挑战第19天】Oracle数据库中的日期和时间函数是强大的工具,如同时空穿梭者的魔法棒。`SYSDATE`和`CURRENT_TIMESTAMP`能显示当前时间,助你在数据中记录关键时刻;`ADD_MONTHS`函数让你轻易跃过月份,实现时间穿越;而`TO_DATE`和`TO_CHAR`则负责日期和时间的格式转换,如同时间的化妆师。除此之外,还有`EXTRACT`、`LAST_DAY`等更多魔法道具,帮助数据管理专家们自如操控时间,解决各种挑战。掌握这些函数,你也能在数据世界中自由穿梭!
|
Oracle 算法 关系型数据库
Oracle常用系统函数之数字类函数:数字的魔术师
【4月更文挑战第19天】Oracle数据库中的数字类函数是数字处理的魔术师,包括`ROUND`(四舍五入),`CEIL`和`FLOOR`(向上/下取整),以及`ABS`(计算绝对值)。还有`MOD`、`TRUNC`和`POWER`等函数,提供求余数、截断和计算幂的功能。熟练运用这些函数能提升数据管理效率,让处理数字变得更简单、有趣。
|
Oracle 关系型数据库 数据挖掘

推荐镜像

更多