Oracle特有函数 case when decode exists 分页rownum

select * from EMP e
select * from dept d
select * from salgrade s
--Oracle特有函数 case when
select
case 2
when 1 then ‘一‘
when 2 then ‘二‘
when 3 then ‘三‘
else ‘其他‘
end
from dual;
--Oracle特有函数 decode
select decode(3,1,‘一‘,2,‘二‘,3,‘三‘,‘其他‘)from dual;
--查询员工的领导信息(内联查询)
select e.empno,e.ename,e.job,e.mgr,‘||‘,m.empno,m.ename,m.job
from emp e,emp m
where e.mgr=m.empno(+)

select *
from emp e right outer join emp m on e.mgr=m.empno;

select *
from emp e full outer join emp m on e.mgr=m.empno;
--查询员工的领导信息(内联查询)及员工部门名称
select e.empno,e.ename,e.job,e.mgr,e.deptno,d.dname,‘||‘,m.empno,m.ename,m.job
from emp e,emp m,dept d
where e.mgr=m.empno and e.deptno=d.deptno
--查询员工的领导信息(内联查询)员工部门名称,领导部门名称
select e.empno,e.ename,e.job,e.mgr,e.deptno,d.dname,‘||‘,m.empno,m.ename,m.job,p.dname
from emp e,emp m,dept d,dept p
where e.mgr=m.empno and e.deptno=d.deptno and m.deptno=p.deptno
--查询员工的领导信息(内联查询)员工部门名称,领导部门名称,员工工资等级,领导工资等级
select e.empno,e.ename,e.job,e.mgr,e.deptno,d.dname,s.grade,
‘||‘,m.empno,m.ename,m.job,p.dname,s1.grade
from emp e,emp m,dept d,dept p,salgrade s,salgrade s1
where e.mgr=m.empno
and e.deptno=d.deptno
and m.deptno=p.deptno
and e.sal between s.losal and s.hisal
and m.sal between s1.losal and s1.hisal
--级别不用数字表示,用文字表示
select e.empno,e.ename,e.job,e.mgr,e.deptno,d.dname,
decode(s.grade,1,‘一级‘,2,‘二级‘,3,‘三级‘,4,‘四级‘,5,‘五级‘,‘没级‘),
‘||‘,m.empno,m.ename,m.job,p.dname,
decode(s1.grade,1,‘一级‘,2,‘二级‘,3,‘三级‘,4,‘四级‘,5,‘五级‘,‘没级‘)
from emp e,emp m,dept d,dept p,salgrade s,salgrade s1
where e.mgr=m.empno
and e.deptno=d.deptno
and m.deptno=p.deptno
and e.sal between s.losal and s.hisal
and m.sal between s1.losal and s1.hisal
--查询工资高于7369号员工工资的员工信息
select sal from emp where empno=7369
select * from emp where sal>(select sal from emp where empno=7369)
--查询存在员工的部门信息
select distinct deptno from emp
select * from dept where deptno in(select distinct deptno from emp )
select * from dept where deptno =any(select distinct deptno from emp )
select * from dept where deptno =some(select distinct deptno from emp )
--使用exists
select * from dept d where exists (select * from emp e where e.deptno=d.deptno)
--查询每个部门最低工资员工信息
select *
from emp e,(select min(sal) msal,deptno from emp group by deptno) t
where e.sal=t.msal
and e.deptno=t.deptno
--查询工资最高的前三名 (分页的感觉)
select * from
(select * from emp order by sal desc) t
where rownum <=3

原文地址:https://www.cnblogs.com/qingyundian/p/9130963.html

时间: 2024-10-10 16:02:44

Oracle特有函数 case when decode exists 分页rownum的相关文章

sql与oracle中有关case和decode的用法(行转列)及比较(转

引: 为了举例说明,这里创建了一张成绩表,如下图所示: 比较: 1.sql中,这两个函数我们仅能使用case,代码及结果如下: select name,       case Subject          when '语文' then 1          when '数学' then 2          when '英语' then 3   --else 3       end  as '科目代码'   from Results 同样的,我们可以用case实现行转列,代码及结果如下: s

Oracle数据库自带了decode()函数

Oracle数据库自带了decode()函数,函数的使用方法如下: SELECT emp.ename, emp.job, emp.sal, decode(job, 'manager', sal * 1.2, 'ANALYST', sal * 1.1, 'salesman', sal * 1.05, Sal) FROM emp; 类似于java中学过的case语句,根据不同的条件进行不同的操作,但是在Mysql中是不支持这个函数的想要实现上面的功能,Mysql中编写的代码如下: SELECT em

数据库编程2 Oracle 过滤 函数 分组 外连接 自连接

[本文谢绝转载原文来自http://990487026.blog.51cto.com] 续:数据库编程1 Oracle 过滤 函数 分组 外连接 自连接 where like模糊查询,查询员工姓名是4个字母 SQL> select * from emp where ename like '____';      EMPNO ENAME                JOB                       MGR HIREDATE          SAL       COMM    

Oracle初级函数的使用

--1.字符函数--UPPER(string|column) 可以将字符转成大写select upper('helloword') from dual;select upper(ename) from emp; --LOWER(string|column) 将指定的字符串转换成小写select lower('HELLOWORD') from dual;select lower(ename) from emp; --INITCAP(string|column) 将单词的第一个字母大写select

Oracle组函数、多表查询、集合运算、数据库对象(序列、视图、约束、索引、同义词)等

count组函数:(过滤掉空的字段) select count(address),count(*) from b_user max() avg() min(),sum() select sum(age),max(age),min(age),avg(nvl(age,0)) from b_user 1       260     70      10      37.1428571428571 group by:如果前面定义了该字段名  则groupby必须也写上该字段 select name,pw

oracle 查询 函数练习2

/*以下代码是对emp表/dept表/salgrade表进行显示宽度设置 */col empno for 9999;col ename for a10;col job for a10;col mgr for 9999;col hiredate for a12;col sal for 9999;col comm for 9999;col deptno for 99;col dname for a14;col loc for a14;col grade for 9999;col tname for

oracle开发系列(三)exists&amp;not exists用法(10g)

注:以下内容适合 初学oracle开发或者java等开发者,高手略过 一 exists&in 以下三个语句  功能都是从 iodso.qos_hisentry_sheet_jtext_td 里面找到  sheet_no在  iodso.qos_hisentry_sheet_td表 arch_time 1天时间里面的单子. iodso.qos_hisentry_sheet_jtext_td 有个普通的联合索引                   iodso.qos_hisentry_sheet_t

oracle 时间函数

加法 select sysdate,add_months(sysdate,12) from dual; --加1年 select sysdate,add_months(sysdate,1) from dual; --加1月 select sysdate,to_char(sysdate+7,'yyyy-mm-dd HH24:MI:SS') from dual; --加1星期 select sysdate,to_char(sysdate+1,'yyyy-mm-dd HH24:MI:SS') from

Oracle单行函数笔记

Oracle中单行函数的分类:1.字符函数substr():字符串截取select substr('我爱你,你知道么?',0,4) from dual执行结果:我爱你,length函数:字符串长度select length('我爱你,你知道么?') from dual执行结果:9Replace()函数:替换指定字符select replace('我爱你,你知道么?','你','的是他') from dual执行结果:我爱的是他,的是他知道么?upper函数:转字母大写select upper('