开发用到的Oracle函数笔记

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.youkuaiyun.com/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.youkuaiyun.com/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.youkuaiyun.com/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)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值