Oracle_基本函数查询综合

Oracle_基本函数查询综合


--【1】查询出每各月倒数第三天受雇的所有员工

select * from emp where hiredate = last_day(hiredate)-2;

--【2】找出早于30年前受雇的员工

select * from emp where (sysdate - hiredate)/365>30;

select * from emp where months_between(sysdate,hiredate)/12 > 30;

select * from emp where to_char(sysdate,‘yyyy‘) - to_char(hiredate,‘yyyy‘)>30;

--【3】以首字母大写的方式显示所有员工的姓名

select initcap(ename) from emp;

--【4】显示不带有‘R‘的员工的姓名

select ename from emp;

select ename from emp where ename not like ‘%R%‘;

--【5】显示正好为5个字符的员工的姓名

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

--【6】显示所有员工姓名的前三个字符

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

--【7】显示所有员工的姓名,用‘a‘替换所有的‘A‘

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

--【8】显示满10年的服务年限的员工的姓名和受雇日期

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

--【9】显示员工的详细资料,按姓名排序

select * from emp order by ename;

--【10】显示员工的姓名和受雇日期,根据其服务年限,将最老的员工排在最前面

select ename, hiredate from emp order by (sysdate - hiredate) desc;

--【11】显示所有员工的姓名,加入公司的年份和月份,按受雇日期所月排序,若月份相同则将最早年份的员工排在最前面

select ename, to_char(hiredate,‘yyyy‘) as year, to_char(hiredate,‘MM‘) as month from emp order by month,hiredate;

--【12】显示所有员工的姓名,工作,薪金,按工作的降序排列,若工作相同则按薪金排序

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

--【13】找出在(任何年份的)2月受聘的所有员工

select * from emp where to_char(hiredate,‘mm‘) = 2;

--【14】对于每个员工,显示其加入公司的天数

select empno, round(to_char(sysdate - hiredate)) from emp;

--【15】显示姓名字段的任何位置包含‘A’的所有员工的姓名

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

时间: 2024-10-31 03:06:43

Oracle_基本函数查询综合的相关文章

Oracle_复杂查询综合

Oracle_复杂查询综合 -- 1.列出所有员工的年工资,按年薪从低到高排序. select empno, ename, sal, nvl2(comm, (sal+comm)*12, sal*12) income from emp order by income; -- 2.列出薪金比"SMITH"多的所有员工. select * from emp where sal>( select sal from emp where ename='SMITH' ); -- 3.列出所有员

聚合函数,分组查询,连接查询综合例子

实例如下: update users set classes='1' where id in('u001','u002','u003','u004'); update users set classes='2' where id in('u005','u006','u007'); users表的内容如下: +------+-----------+------------+------+-------+---------+ | id | firstname | secondname | age |

Oracle基础知识笔记(11) 建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓名和所属系别不能为空: 积分要第为空值,要么为6,4

MSSQL 4表联查,子查询,函数统计,分组条件查询综合应用实例

1 SELECT 2 [UserName] 3 ,[Yhxm] 4 ,[Qx] 5 ,[Phone] 6 ,[Number] = COUNT([UserName]) 7 FROM 8 (SELECT 9 [UserName] = A.[username] 10 ,[Yhxm] = B.[xm] 11 ,[Qx] = D.[P_Power] 12 ,[Phone] = B.[dh] 13 ,[DayCount] = (SELECT COUNT(*) FROM [Caihuashun_FuJian_

Oracle笔记(十一) 建表、更新、查询综合练习

Oracle笔记(十一) 建表.更新.查询综合练习 有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名name,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.  建表,并在相应字段上增加约束: 定义各个表的主键和外键约束: 运动员的姓

建表、更新、查询综合练习

有某个学生运动会比赛信息的数据库,保存了如下的表: 运动员sporter(运动员编号sporterid,运动员姓名sportername,运动员性别sex,所属系号department) 项目item(项目编号itemid,项目名称itemname,项目比赛地点location) 成绩grade(运动员编号id,项目编号itemid,积分mark) 请用SQL语句完成如下功能: 1.建表,并在相应字段上增加约束 2.向表中输入指定的数据 运动员( 1001,李明,男,计算机系 1002,张三,男

一个经典的数据库分段查询和分组查询综合运用的例子

记得以前面试时遇到的,感觉这个问题比较经典,所以后来整理了下. 题目描述是这样的(凭印象): 请用一条sql统计出每个班级中,20-50分.50-70分.70-100分的人数, 已知:表(exam),有如下字段:class(班级).name(姓名).score(分数): 查询显示格式: 这是个典型的分段又分组的查询案例,难点就是考虑到按班级分组的同时按成绩分段查询. 表数据如下: select count_abc.class 班级, sum(case when count_abc.a is nu

Oracle_关联查询

1. 等值连接(Equijoin).非等值连接(Non-Equijoin).外连接(Outer join):-->左外连接-->右外连接.自连接(Self join) 交叉连接(Cross join).自然连接(Natural join).使用Using子句建立连接.使用on子句建立连接.外连接(Outer join):-->左外连接-->右外连接-->全外连接 2. 等值连接(Equijoin) select empno,ename,sal,emp.deptno,dname

聚合函数,分组查询,连接查询综合样例

实比例如以下: update users set classes='1' where id in('u001','u002','u003','u004'); update users set classes='2' where id in('u005','u006','u007'); users表的内容例如以下: +------+-----------+------------+------+-------+---------+ | id | firstname | secondname | a