单行函数

 查询当前数据库时间(sysdate)

select  sysdate from dual;

dual:是oracle自带的一张虚拟表, 没有任何意义,为了保证spl语句的完整性。

数字函数:

round(列|值|表达式,小数的有效位数) 表示四舍五入

trunc (列|值|表达式,小数的有效位数) 直接截取;

mod(列|值,列|值)  求余数,

求5/2的余数      select mod(5,2) from dual;

abs(列|值) 求绝对值;

字符函数:

length( 列|值|表达式) 求长度   (空格也表示一个字符);

upper  ( 列|值|表达式)全部转大小写

lower  ( 列|值|表达式)全部转小写字母

initcap( 列|值|表达式)  每个单词首字母大写       (单词之间要空格)

lpad(列|值,宽度,填充字符);从左边补不足宽度个填充字符
rpad(列|值,宽度,填充字符);从右边补不足宽度个填充字符

ltrim(列|值,截取字符);从左边截取字符
rtrim(列|值,截取字符);从右边截取字符

select rtrim('abcdedede','de') from dual;
------------
    abc
select rtrim('abcddedede','de') from dual;
--------------
    abc --表示从右边开始截取de|d|e,直到不同于截取字符的字符为止

>>
replace(列|值,被置换的字符,置换的字符);置换指定字符

translate(参数一,参数二,参数三);转换指定字符
参数一:要处理的内容,列|值
参数二:要检索的内容
参数三:检索后,与检索内容一一对应替换的内容(如果无替换值,则全部去掉)
instr(字符串,要查找的字符串,1(左到右查找,-1相反)),第几个出现)   查找指定字符串所在的位置下标

substr(列|值,指定位置下标,保留几位(不写代表后面全保留))

decode()
a.类似一个三目运算符
比较第一和第二个参数,如果相等取第三个参数,如果不相等取第四个参数。select decode('A','A','B','C')from dual;

b.if else if else
decode(A,b,c,d,e,f,g,h)
如果A=b,输出c;
如果A=d,输出e;
如果A=f,输出g;
如果b,d,f都不满足A,输出h.

case when 可以把它看成switch功能;
select name "部门名",
case region_id
    when 1 then '北美'
    when 2 then '南美'
    when 3 then '中东'
    when 4 then '亚洲'
    when 5 then '欧洲'
    else '未知区域'
end 区域名
from s_dept;


    注意:case后面是否出现列名,取决于when后面条件是否出现比较列
    如果when后面已经出现列名,那case后面务必不能写列名,
    如果when后面是值,那么必须在case后面指定列名,否则无法确定所给的值的真正含义

原文地址:https://www.cnblogs.com/w-xibao/p/7770999.html