-- 1、找出每個月倒數第三天受僱的員工
-- 第一步:獲取每個月的最後一天
select last_day(trunc(hiredate, 'month')) from emp;
--第二步:獲取倒數三天
select last_day(hiredate)-2
from emp;
-- 第四步:查詢滿足條件的人資訊
select * from emp where hiredate = last_day(hiredate)-2
--2、找出35年前的雇員
--第一步: 計算所有員工的工齡
--計算所有員工的工齡 方法一
select e.empno,e.ename,floor(months_between(sysdate,e.hiredate)/12) 工齡 from emp e;
--計算所有員工的工齡 方法二
select e.empno,e.ename,floor((sysdate-e.hiredate)/365) 工齡 from emp e;
----計算所有員工的工齡 方法三
select e.empno,e.ename, extract(year
from sysdate)-extract(year
from e.hiredate) 工齡 from emp e;
-- 工齡滿足條件
select e.empno,e.ename from emp e where extract(year
from sysdate)-extract(year
from e.hiredate) = 35
-- 3、給所有員工名字前加dear,並且名字首字母大寫,其餘小寫
--第一步:查詢出名字
select e.ename from emp e;
-- 第二步,加dear
select concat('deal_',e.ename) from emp e;
--第三步:首字母大寫其餘小寫
select initcap(concat('deal_',e.ename)) newname from emp e;
--4、找出姓名為五個字的員工
--第一步 查出員工姓名長度
select length(e.ename) name_legth from emp e;
--第二步; 查出滿足條件的員工資訊
select e.ename from emp e where length(e.ename) = 5;
-- 5、找不姓名中不帶r的員工
select ename from emp where ename not
like
'%r%'
--6、獲取所有員工姓名的第乙個字
select substr(e.ename,1,1) from emp e;
--7 計算員工入職天數(四捨五入)
--第一步:計算員工入職天數
select sysdate - e.hiredate from emp e;
-- 第二步:四捨五入
select round(sysdate - e.hiredate) from emp e;
--8 找出二月份入職的員工
--第一步:找出員工入職的月份
select extract(month
from e.hiredate) from emp e;
--第一步:找出員工入職的月份為2 的員工資訊
select e.ename from emp e where extract(month
from e.hiredate) = 2;
--9、列出至少有乙個員工的所有部門
--第一步列出所有部門編號
select deptno from emp
-- 第二步 查詢出滿足條件的部門
select * from dept where deptno in (select deptno from emp)
--10、列出所有員工的姓名及其直接上級的姓名。
--第一步 :找出有上級的員工
select empno, ename,emp.*
from emp
where mgr in (select emp.empno from emp);
--第二步:列出所有員工的姓名及其直接上級的姓名
select a.empno, a.ename, b.ename manager
from emp a, emp b
where a.mgr = b.empno;
Oracle基礎 單行函式練習(一)
1.查詢部門30中的所有員工資訊 select from emp where deptno 30 2.列出所有辦事員 clerk 的姓名,編號和部門編號 select ename,empno,deptno from emp where job clerk 3.找出獎金高於薪金的員工資訊 select...
Oracle 綜合練習 基礎查詢
總目錄?震驚!史上最菜的oracle 11g教程 大佬勿進 1 選擇部門編號為30中的所有員工。限定查詢,肯定使用where子句 首先要查詢,select和from肯定是不能少的,where和order by 是可選的 部門編號是deptno欄位,為30就使用 2 列出所有辦事員 clerk 的姓名...
Oracle基礎練習題二
1 查詢職員表中,在20和30號部門工作的員工姓名和部門號。select e.ename,e.deptno from emp e where e.deptno in 20,30 2 查詢職員表中,沒有管理者的員工姓名及職位,並按職位排序。select e.ename,e.job from emp e...