博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
oracle学习篇三:SQL查询
阅读量:5874 次
发布时间:2019-06-19

本文共 2375 字,大约阅读时间需要 7 分钟。

select * from emp;

 

--1.找出部门30的员工

select * from emp where deptno = 30;

 

--2.列出所有办事员(CLERK)的姓名,变化和部门编号

select * from emp where job = upper('clerk');

 

--3.找出佣金高于薪金的员工。

select * from emp where comm > sal;

 

--4.找出佣金高于薪金60%的员工。

select *
from emp
where comm > sal * 0.6

 

--5.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料

select *
from emp
where (deptno = 10 and job = upper('manager'))
or (deptno = 20 and job = upper('clerk'));

 

--6.找出部门10中所有的经理(MANAGER)和部门20中所有的办事员(CLERK)的详细资料,既不是经理又不是办事员,但薪资大于等于2000的所有员工地详细信息
select *
from emp
where (deptno = 10 and job = upper('manager'))
or (deptno = 20 and job = upper('clerk'))
or (job not in ('MANAGER', 'CLERK') and sal >= 2000);

 

 

--7.找出收取佣金的员工地不同工作

select distinct job from emp where comm is not null;

 

--8.找出不收取佣金或收取佣金低于100的员工.

select *
from emp
where comm is null
or comm < 100;

 

--9.找出各个月倒数第3天受雇的员工

select LAST_DAY(HIREDATE)
from emp
select * from emp where LAST_DAY(HIREDATE) - 2 = HIREDATE;

 

--10.找出早于12年前受雇的员工.
select * from emp where months_between(sysdate, hiredate) / 12 > 12;

 

--11.以首字母大写的方式显示所有员工姓名

select initcap(ename) from emp;

 

--12.显示正好为5个字符的员工姓名.

select * from emp where length(ename) = 5;

 

--13.显示不带“R”的员工姓名.

select * from emp where ename not like '%R%';

 

--14.显示所有员工共姓名前三个字符.

select substr(ename, 0, 3) from emp;

 

--15.显示所有员工,用“a"替换"A"

select replace(ename, 'A', 'a') from emp;

 

--16.显示满10年的员工姓名和授雇日期

select ename, hiredate
from emp
where months_between(sysdate, hiredate) / 12 > 10;

 

--17.显示员工的详细资料,按姓名排序

select * from emp order by ename;

 

--18.显示员工姓名和授雇日期,根据其服务年限,将最老的员工牌在最前面

select ename, hiredate from emp order by hiredate;

 

--19.显示所有员工的姓名/工作和薪资,按工作的降序排序,若共工作相同则按薪资排序

select ename, job, sal from emp order by job desc, sal;

 

--20.显示所有员工的姓名/加入公司的年份和月份,安排受雇日前所作的月排序,若月份相同则将最早年份的员工排在最前面。

select ename, to_char(hiredate, 'yyyy') y, to_char(hiredate, 'mm') m
from emp
order by m, y;

 

--21.显示在一个月为30天的情况,所有员工日薪资,忽略余数。

select ename, round(sal / 30) from emp;

 

--22.找出在(任何年份的)2月份受雇的员工。

select * from emp where to_char(hiredate, 'mm') = '02';

 

--23.对于每个员工显示其加入公司的天数。

select ename, trunc(sysdate - hiredate) from emp;

 

--24.显示姓名字段的任何位置包含“A”的所有员工地姓名。

select ename from emp where ename like '%A%';

 

--25.以年月日的方式显示所有员工的服务年限(大概)

select ename,
hiredate,
trunc(months_between(sysdate, hiredate) / 12) y,
trunc(mod(months_between(sysdate, hiredate), 12)) m,
trunc(mod(sysdate - hiredate, 30)) d
from emp;

 

 

转载于:https://www.cnblogs.com/brant/p/5597922.html

你可能感兴趣的文章
自己动手实现一个简单的JSON解析器
查看>>
阿里云专有宿主机,构建公共云上的专有资源池
查看>>
WordPress 主题开发商将客户当肉鸡,向对手发起 DDoS 攻击
查看>>
Java包的命名规范
查看>>
关于linux下raid的设备文件和格式化
查看>>
The Rising Smart Logistics Industry: How to Use Big Data to Improve Efficiency and Save Costs
查看>>
机器人行业五大趋势:中国成为机器人投资狂热爱好者
查看>>
CITE 2018走进北美,打造拉斯维加斯“中国之夜”
查看>>
为什么计算机科学家们应该了解量子计算?(三):算法棱镜折射出的科学
查看>>
Theano 中文文档 0.9 - 7. 教程
查看>>
在Panorama最新排名中Infor领先其他ERP巨头
查看>>
区块链
查看>>
Java中使用HttpRequest调用RESTfull的DELETE方法接口提示:How to fix HTTP method DELETE doesn't support output...
查看>>
中国商飞宣布将在2021年交付首架C919,不受认证进程的影响
查看>>
IaaS后时代,企业如何玩转云上的业务开发
查看>>
福特牵手伦敦出租车公司,试点自动驾驶拼车服务
查看>>
图像识别攻击还没完全解决,语音识别攻击又来了!
查看>>
Vim出现:_arguments:450: _vim_files: function definition file not found的问题解决
查看>>
一探究竟:善用 MaxCompute Studio 分析 SQL 作业
查看>>
商务部:社区零售业步入“黄金发展期” 大数据挖掘正当时
查看>>