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进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。
评论
相关阅读
【纯干货】Oracle 19C RU 19.27 发布,如何快速升级和安装?
Lucifer三思而后行
802次阅读
2025-04-18 14:18:38
Oracle数据库一键巡检并生成HTML结果,免费脚本速来下载!
陈举超
602次阅读
2025-04-20 10:07:02
【ORACLE】你以为的真的是你以为的么?--ORA-38104: Columns referenced in the ON Clause cannot be updated
DarkAthena
551次阅读
2025-04-22 00:13:51
【活动】分享你的压箱底干货文档,三篇解锁进阶奖励!
墨天轮编辑部
540次阅读
2025-04-17 17:02:24
【ORACLE】记录一些ORACLE的merge into语句的BUG
DarkAthena
512次阅读
2025-04-22 00:20:37
一页概览:Oracle GoldenGate
甲骨文云技术
503次阅读
2025-04-30 12:17:56
火焰图--分析复杂SQL执行计划的利器
听见风的声音
474次阅读
2025-04-17 09:30:30
OR+DBLINK的关联SQL优化思路
布衣
387次阅读
2025-05-05 19:28:36
Oracle数据库Hint大全,31个使用案例,速来下载!
陈举超
371次阅读
2025-04-16 21:25:19
Oracle19C低版本一天遭遇两BUG(ORA-04031/ORA-00600)
潇湘秦
337次阅读
2025-04-16 17:05:16