您的位置:首页 > 数据库 > Oracle

开发用到的Oracle函数笔记

2017-12-26 15:27 597 查看
to_char()

格式:TO_CHAR(number,format) 即 TO_CHAR((数值,格式)

用法: 1、不指定格式的 TO_CHAR函数将数值转换成简单字符串形式。

例: TO_CHAR(123) 结果 123

TO_CHAR(-123) 结果 -123

其他用法:http://blog.sina.com.cn/s/blog_4cbadf5a0100f7u7.html

“||”

1.和其他数据库系统类似,Oracle字符串连接使用“||”进行字符串拼接,其使用方式和MSSQLServer中的加号“+”一样。

例如:

SELECT '工号为'||FNumber||'的员工姓名为'||FName FROM T_Employee
WHERE FName IS NOT NULL


其他用法:https://www.cnblogs.com/wangfuyou/p/5948859.html

CONCAT()

用法:CONCAT()函数用于将多个字符串连接成一个字符串。

CONCAT(t3.schedule, ‘%’)

CONCAT(CONCAT(‘[‘,sd.subitemname),’]’) || t2.username

http://blog.csdn.net/u014158708/article/details/48180541

wm_concat()

该函数可以把列值以”,”号分隔起来,并显示成一行

select wm_concat(name) from test;


select g.userid, wm_concat(g.roleid) roleid, wm_concat(g.rolename) rolename from (
select rr.userid, re.rolename, re.roleid
from KD_ROLEMEMBER rr
left join KD_ROLE re
on rr.roleid = re.roleid
) g
group by g.userid


查询结果:



此处对userid进行了分组,可以查询出当前userid的角色有哪些

资料:http://www.jb51.net/article/37604.htm

http://blog.csdn.net/ojerryzuo/article/details/53927057

substr()

substr(字符串,截取开始位置,截取长度) //返回截取的字

substr('Hello World',0,1)
//返回结果为 ‘H’ *从字符串第一个字符开始截取长度为1的字符串

substr('Hello World',1,1)
//返回结果为 ‘H’ *0和1都是表示截取的开始位置为第一个字符

substr('Hello World',2,4)
//返回结果为 ‘ello’

substr('Hello World',-3,3)
//返回结果为 ‘rld’ *负数(-i)表示截取的开始位置为字符串右端向左数第i个字符

测试:

select substr('Hello World',-3,3) value from dual;


附:java中substring(index1,index2)的简单用法

作用:从字符串索引(下标)为index1的字符开始截取长度为index2-index1 的字符串。

String str="Hello World";
System.out.println(str.substring(0,5));


打印结果为:Hello

union 和 union all

union:对两个结果集进行并集操作,不包括重复行,同时进行默认规则的排序;

union all:对两个结果集进行并集操作,包括重复行,不进行排序;

查询项目树结构(不包括废除状态‘3’):

select mid the_id, name the_text, fid the_pid from t_module_task where state != '3'
union all
select proid the_id, name the_text, '0' from t_project where state != '3'


查询结果:





资料:https://www.cnblogs.com/macavalier/p/3154269.html

min()

返回一个数字列或计算列的最小值

max()

返回一个数字列或计算列的最大值和最小值用法一样

count()

用来计算有效数据的数量

sum()

返回一个数字列或计算列总和

avg()

返回一个数字列或计算列的平均值

nvl(expr1,expr2)

nvl(t1.username,’无’)

NVL(expr1,expr2) 如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。

to_number()

to_number()函数是Oracle中常用的类型转换函数之一,主要是将字符串转换为数值型的格式,与TO_CHAR()函数的作用正好相反。

资料:http://blog.csdn.net/dongdong9223/article/details/48972815

trunc()

资料:http://www.cnblogs.com/suding1188/archive/2013/01/06/2848067.html

猜猜下面函数的作用:

CONCAT(nvl(trunc(t2.module_schedule, 1),'0'), '%')


(case when

(to_date(t2.enddate,’yyyymmdd’)-to_date(:currentDate<”KDT_INT + “>,’yyyymmdd’)) < 0 then 0 else

(to_date(t2.enddate,’yyyymmdd’)-to_date(:currentDate<”KDT_INT + “>,’yyyymmdd’)) end)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  oracle 函数