随笔分类 -  SQL

摘要:Oracle层次查询的语法如下:下面根据两道“烧脑”的题具体来体现:1. 根据时间先后顺序,十二星座的英文名称用逗号串起来为'Aries,Taurus,Gemini,Cancer,Leo,Virgo,Libra,Scorpio,Sagittarius,Capricorn,Aquarius,Pisce... 阅读全文
posted @ 2015-08-07 09:38 iVictor 阅读(1000) 评论(0) 推荐(0) 编辑
摘要:GROUP_ID首先我们看看官方的解释:大意是GROUP_ID用于区分相同分组标准的分组统计结果。解释起来比较抽象,下面我们来看看具体的案例。例1:单一分组SQL> select group_id(),deptno,sum(sal) from emp group by rollup(deptno);... 阅读全文
posted @ 2015-07-23 15:02 iVictor 阅读(10186) 评论(0) 推荐(0) 编辑
摘要:在Oracle中,如果要实现行列转换,较为常见的是用DECODE和CASE语句。对于简单的行列转行,DECODE和CASE语句尚能应付。在逻辑比较复杂,分组聚合较多的场景中,DECODE和CASE语句则力有不逮。而pivot则可完美解决这一切。首先,我们来看看Oracle对于其的解释:可见,pivo... 阅读全文
posted @ 2015-07-21 16:57 iVictor 阅读(4104) 评论(0) 推荐(1) 编辑
摘要:GROUP BY的扩展主要包括ROLLUP,CUBE,GROUPING SETS三种形式。ROLLUProllup相对于简单的分组合计增加了小计和合计,解释起来会比较抽象,下面我们来看看具体事例。例1,统计不同部门工资的总和和所有部门工资的总和。SQL> select deptno,sum(sal)... 阅读全文
posted @ 2015-07-20 14:41 iVictor 阅读(1626) 评论(0) 推荐(1) 编辑
摘要:最近在学习的过程中,发现一个挺有意思的函数,它可实现对列值的拼接。下面我们来看看其具体用法。用法:对其作用,官方文档的解释如下:For a specified measure,LISTAGGorders data within each group specified in theORDERBYcl... 阅读全文
posted @ 2015-07-17 14:30 iVictor 阅读(80883) 评论(5) 推荐(7) 编辑
摘要:1. 做一个3*3的加法表SQL> select a||'+'||b||'='||(a+b) from (select rownum a from all_objects where rownum0 and b.n0 and c.n0 and d.n0;6.每个雇员的薪水(SAL)都对应到一个薪水级... 阅读全文
posted @ 2015-06-10 14:40 iVictor 阅读(924) 评论(0) 推荐(1) 编辑
摘要:在这里,我们会用到DBMS_RANDOM包和CASE WHEN语句,思路如下:一、利用DBMS_RANDOM.RANDOM函数随机生成数值,然后对数值进行取模,如果我们要在10个元素中随机读取的话,那我们需要对10进行取模。二、再将取模后的值利用CASE WHEN语句与元素进行关联。譬如,我有一个组... 阅读全文
posted @ 2015-05-14 23:17 iVictor 阅读(3830) 评论(2) 推荐(0) 编辑
摘要:EMP表是Oracle测试账户SCOTT中的一张雇员表,首先,我们来看看emp表的数据 其中,empno是员工编号,同时也是该表的主键,ename是员工姓名,sal是员工工资,deptno是员工部门。 如何找出每个部门的最高工资的员工信息呢? 常用的方法是关联查询,SQL语句如下: 结果如下: 下面 阅读全文
posted @ 2015-05-08 16:15 iVictor 阅读(6898) 评论(0) 推荐(0) 编辑
摘要:1. 利用LAG OVER抑制结果集中的重复值原始结果如下:SQL> select deptno,ename from emp order by deptno;DEPTNO ENAME------ ---------- 10 CLARK 10 KING 10 MILLER 2... 阅读全文
posted @ 2014-11-20 09:21 iVictor 阅读(347) 评论(1) 推荐(0) 编辑

点击右上角即可分享
微信分享提示