单行函数
Posted 将心比心
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单行函数相关的知识,希望对你有一定的参考价值。
查询当前数据库时间(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后面指定列名,否则无法确定所给的值的真正含义
以上是关于单行函数的主要内容,如果未能解决你的问题,请参考以下文章