- Oralce中将空字符一律视为null。
一、字符串处理
- chr()函数——将 ASCII 码转换为字符
Chr() 函数表示返回指定 ASCII 码的字符,作用和 ASCII() 相反。
SQL> select chr(66) result from dual;
R
-
B
ASCII()函数表示返回指定字符的ASCII码,作用和 CHR() 相反。
SELECT ASCII('a') from dual; 结果为65
- to_char()函数——格式化数值
to_char(原数值,格式)
常见格式字符:0、9、,、FM、$、L
TO_CHAR(SY
----------
2019072500
SQL> select to_char(sysdate,'YYYYMMDD')||lpad('00',3,'1') from dual;
TO_CHAR(SYS
-----------
20190725100
SQL> select to_char(sysdate,'YYYYMMDD')||rpad('00',3,'1') from dual;
TO_CHAR(SYS
-----------
20190705001
-
填充函数
-
lpad(String,‘padded_length,【pad_String]’)
第一个参数指定原始字符串,第二个字符串指定填充后的字符串长度,第三个字符串指定不足位数上将要填充的字符串(此原始字符串左边自左向右填充)
:左边对字符串使用指定的字符进行填充 -
rpad:右边对字符串使用指定的字符进行填充
lap实例:
SQL> select lpad('luck',7,'you') from dual;
LPAD('L
-------
youluck
SQL> select to_char(sysdate,'YYYYMMDD')||lpad('00',2,'1') from dual;
- low() 函数——返回字符串的小写形式
SQL> select lower('ABC') from dual;
LOW
---
abc
- upper()函数——返回字符串的大写形式
SQL> select upper('abc') from dual;
UPP
---
ABC
- initcap()函数——单词首字符大写 (we-all) w和a都大写 非单词作为分隔符看做两个单词
- length()函数——返回字符串长度
- substr() 函数——截取字符串
substr(String, start_index, length)
第一个参数String指定原始字符串,第二个参数start_index指定开始截取的位置;第三个参数指定截取的长度。Oracle中字符串中第一个字符的位置为1,不同Java为0.
SQL> select substr('asdqwq',2,2) from dual;
SU
--
sd
- instr()函数——获得字符串出现的位置
instr(String, sub_string, start_index, times)
String为父字符串; sub_string为子字符串;start_index为指定搜寻的起始位置(可选参数);time为第几次获得子字符串(可选参数)。
SQL> select instr('abcdef','bc') from dual;
INSTR('ABCDEF','BC')
--------------------
2
SQL> select instr('abcbcdef','bc',3) from dual;
INSTR('ABCBCDEF','BC',3)
------------------------
4
SQL> select instr('abcbcdef','bc',3,1) from dual;
INSTR('ABCBCDEF','BC',3,1)
--------------------------
4
SQL> select instr('abcbcdef','bc',3,2) from dual;
INSTR('ABCBCDEF','BC',3,2)
--------------------------
0
- ltrim()函数——删除字符串左侧空格
- rtrim()函数——删除字符串右侧空格
- trim()函数——删除字符串两侧空格
SQL> select ltrim(' 000') from dual;
LTR
---
000
- concat()函数——串联字符串
SQL> select concat('hello', ' word') from dual;
CONCAT('HE
----------
hello word
- translate()函数——翻译字符串
SQL> select translate('*=+','1=1+2*3','abcdefgh') from dual;
TRA
---
fbd
方法:翻译第一个字符串'*=+',过程:在第二个字符串寻找“*”,下标为6,然后在第三个字符串
中寻找下标为6对应的字符为f做为结果的第一个字符 。
- reverse()函数——反转字符串
SQL> select reverse('abcd') from dual;
REVE
----
dcba
二、数值处理
- abs()函数——返回数字的绝对值
- round()函数——返回数字的四舍五入
小数点位数可以为正、负、0
0表示精确到整数
SQL> select round(3.141,2) from dual;
ROUND(3.141,2)
--------------
3.14
说明:精确到小数点后两位
SQL> select round(155.5,-1) from dual;
ROUND(155.5,-1)
---------------
160
说明:小数位数为-1,精确到小数点之前的位数
- ceil()——向上取整(取大)
SQL> select ceil(3.14) result from dual;
RESULT
----------
4
SQL> select ceil(-3.14) result from dual;
RESULT
----------
-3
- floor()——向下取整(取小)与上相反
- mod()——取模操作(求余)
SQL> select mod(5,3) result from dual;
RESULT
----------
2
说明:5/3 余2
- sign()——返回数字的正负性
当参数大于0时,返回 1,小于0时返回 -1,等于0时返回 0 - sqrt()——返回数字的平方根
- power()——返回数字的乘方运算
SQL> select power(2,3) f from dual;
F
----------
8
- trunc()——截取数字(与round相似,但不会四舍五入)
SQL> select trunc(314,-2) from dual;
TRUNC(314,-2)
-------------
300
SQL> select trunc(3.14,1) from dual;
TRUNC(3.14,1)
-------------
3.1
- to_number和to_char之间可进行转换
SQL> select to_number('008') result from dual;
RESULT
----------
8
三、日期处理
- sysdate()函数——返回当前日期
SQL> select sysdate from dual;
SYSDATE
--------------
26-7月 -19
- add_months() 函数——为日期加上特定月份
SQL> select add_months(sysdate,1) time from dual;
TIME
--------------
26-8月 -19
- nvl(表达式,新值/表达式)——空值处理
SQL> select nvl('','love you') tetx from dual;
TETX
--------
love you
- rownum()函数——结果集的行
SQL> select empno,ename,rownum from emp
2 where rownum<=3
3 order by ename;
EMPNO ENAME ROWNUM
---------- ---------- ----------
7499 ALLEN 2
7369 SMITH 1
7521 WARD 3
- cast(原数据 as 新的数据类型)——强制转换数据类型