暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle函数总结

阿达科技x 2021-05-18
255

pivot函数

select * from study ----第一步
pivot
(
sum (Amount) ----第三步
for IncomeDay in ([MON],[TUE],[WED],[THU],[FRI],[SAT],[SUN]) ---第二步
) as AvgIncomePerDay
第一步:肯定是要明白数据源了,这里是study
第二步:要明白要想让哪一列的值做新的列名字
第三步:要明白对于这新的列要求那些值呢?
复制

concat函数

select concat(a.YEAR,a.mouth) from TT_VS_ORDER a;
将YEAR和mouth拼接在一起
复制

rpad函数

select rpad(a.YEAR,6,'a')  from TT_VS_ORDER a ;
第一个参数:要查询的字段
第二个参数:截取位数
第三个参数:查询结果不够位数,补齐
复制

substr函数

1.substr(string string, int a, int b);
string 需要截取的字符串
a 截取字符串的开始位置(注:当a等于0或1时,都是从第一位开始截取)
b 要截取的字符串的长度
2.substr(string string, int a) ;
string 需要截取的字符串
a 可以理解为从第a个字符开始截取后面所有的字符串
复制

decode函数

DECODE(value,if 条件1,then 值1,if 条件2,then 值2,...,else 其他值)
select decode(YEAR,'2013','true','false')  from TT_VS_ORDER ;
如果YEAR字段值是2013 则为true,否则为false
复制

case when then函数

select case when YEAR = 2016 then 'true' else 'false' end year from TT_VS_ORDER;
如果YEAR字段的值是2016 则为true 否则为false
复制

NVL函数

NVL(expr1,expr2)
select nvl(a.YEAR, '1') YEAR from TT_VS_ORDER a;
如果YEAR为null则显示1,不为空正常显示查询出来的值
NVL2(expr1,expr2, expr3)
select nvl2(a.YEAR,'0','2') from TT_VS_ORDER a;
如果YEAR为null 返回2 不为null返回0
复制

to_date()函数

TO_DATE 是把字符串转换为数据库中的日期类型转换函数
复制

to_char函数

TO_CHAR 是把日期或数字转换为字符串
复制

to_number函数

TO_NUMBER 将字符转化为数字
复制

trunc函数

--日期
select trunc(sysdate) from dual; --2021-03-18 00:00:00 今天的日期为2021-03-18
select trunc(sysdate, 'mm') from dual; --2021-3-1 返回当月第一天.
select trunc(sysdate,'yy') from dual; --2021-1-1 返回当年第一天
select trunc(sysdate,'dd') from dual; --2021-3-18 返回当前年月日
select trunc(sysdate,'yyyy') from dual; --2021-1-1 返回当年第一天
select trunc(sysdate,'d') from dual; --2021-3-14 (星期天)返回当前星期的第一天
select trunc(sysdate, 'hh') from dual; --2021-3-18 13:00:00 当前时间为13:58
select trunc(sysdate, 'mi') from dual; --2021-3-18 13:58:00 TRUNC()函数没有秒的精确
--数字
TRUNC(int1,int2
int1 需要截尾取整的数字。
int2 用于指定取整精度的数字。int2 的默认值为 0
TRUNC()函数截取时不进行四舍五入
复制

UNION

union操作符合并的结果集,不会允许重复值,如果允许有重复值的话,使用UNION ALL.
SELECT column_name(s) FROM table_name1
UNION
SELECT column_name(s) FROM table_name2
复制

merge into

merge into 目标表 a

using 源表 b

on(a.条件字段1=b.条件字段1 and a.条件字段2=b.条件字段2 ……)  

when matched then update set a.更新字段=b.字段

when  not matched then insert into a(字段1,字段2……)values(值1,值2……)
复制


文章转载自阿达科技x,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论