Oracle查詢語句練習題,排序, ,in

2021-10-24 04:53:48 字數 3754 閱讀 4414

已知有以下表,資料如圖:

create table s_emp(

id    number(7)    constraint s_emp_id_nn not null,

last_name    varchar2(25)    constraint s_emp_last_name_nn not null,

first_name    varchar2(25),

userid        varchar2(8),

start_date    date,

comments    varchar2(255),

manager_id    number(7),

title        varchar2(25),

dept_id        number(7),

salary        number(11, 2),

commission_pct    number(4, 2),

constraint s_emp_id_pk primary key (id),

constraint s_emp_userid_uk unique (userid),

constraint s_emp_commission_pct_ck

check (commission_pct in (10, 12.5, 15, 17.5, 20)));

1)查詢員工的工資和last_name,對工資進行公升序排列

select id,last_name from s_emp 

order by salary asc;

2)查詢員工的工資和last_name,對last_name進行降序排列

select salary,last_name from s_emp 

order by last_name desc;

3)查詢員工的工資和last_name,先對salary進行降序排列,再對last_name進行公升序排列

select salary,last_name from s_emp 

order by salary desc,last_name asc;

4)請舉例說明空值的排序規則

公升序排列,預設情況下,null值排後⾯

降序排序,預設情況下,null值排前⾯

5)查詢41號部門員工的資訊?

select * from s_emp 

where dept_id=41;

6)查詢工資大於1000的員工的資訊?

select * from s_emp

where salary > 1000;

7)查詢工資大於1000小於1500員工的資訊,使用兩種方式來做?

select * from s_emp

where salary >1000 and salary <1500;

select * from s_emp

where salary between 1000 and 1500;

8)查詢41或者42部門員工的資訊,使用兩種方式來做?

select * from s_emp

where dept_id=41 or dept_id=42;

select * from s_emp

where dept_id in(41,42);

9)查詢last_name包含n的員工的資訊?

select * from s_emp

where last_name like '%n%';

10)查詢last_name包含n或者n的員工的資訊?

select * from s_emp

where last_name like '%n%' or last_name like '%n%';

11)查詢last_name第二個字母為g的員工的資訊?

select * from s_emp

where last_name like '_g%';

12)查詢last_name最後乙個字母為o的員工的資訊?

select * from s_emp

where last_name like '%o';

13)查詢last_name以n開頭的員工的資訊?

select * from s_emp

where last_name like 'n%';

14)先插入這條資料

insert into s_emp(id,last_name)

values(999,'_briup');

commit;

然後查詢以_開頭的員工的資訊

select * from s_emp

where last_name like '/_%' escape '/';

15)找出部門41中所有經理和部門43中的所有辦事員的詳細資料

經理職稱為:warehouse manager

辦事員的職稱為:stock clerk

select * from s_emp

where (title='warehouse manager' and dept_id =41 ) 

or (title='stock clerk' and dept_id=43);

16)找出部門41中所有經理、部門43中所有辦事員,既不是經理又不是辦事員但其薪金》=2000的所有雇員的詳細資料

select * from s_emp

where (title='warehouse manager' and dept_id =41 ) 

or (title='stock clerk' and dept_id=43) 

or ((title!='warehouse manager' and title!='stock clerk')and salary>=2000);

17)顯示不帶有's'的雇員姓名

select '姓名:' || last_name || '-' || first_name name from s_emp 

where last_name not like '%s%' and first_name not like '%s%';

18)顯示雇員姓名,根據其服務年限,將最老的雇員排在最前面

select '姓名:' || last_name || '-' || first_name name from s_emp 

order by start_date asc;

19)顯示所有雇員的姓名、工作和薪金,按工作的降序順序排序,而職位相同時按薪金公升序

select '姓名:' || last_name || '-' || first_name name,title,salary from s_emp

order by title desc,salary asc;

20)查詢12個月的年薪大於18000的員工的資訊

select * from s_emp

where salary*12>18000;

21)查詢13個月的年薪在10000到14000之間的員工資訊

select * from s_emp

where salary*13 between 10000 and 14000;

22)查詢41號部門工資大於1400的員工資訊

select * from s_emp

where dept_id=41 and salary>1400;

23)查詢除41,42號部門12個月的年薪大於17000員工的資訊

select * from s_emp

where (dept_id!=41 and dept_id!=42) and salary*12>17000;

排序練習題

一 選擇題 1 以下序列不是堆的是 d a 100,85,98,77,80,60,82,40,20,10,66 b 100,98,85,82,80,77,66,60,40,20,10 c 10,20,40,60,66,77,80,82,85,98,100 d 100,85,40,77,80,60,6...

JS語句練習題

var a prompt 輸入乙個數字 var b prompt 輸入乙個 中的任意運算子 var c prompt 再輸入乙個數字 if b else if b else if b else 方法二 var a prompt 輸入乙個數字 var b prompt 輸入乙個 中的任意運算子 var...

Oracle練習題一

操作hr賬戶下的employees表 2.查詢工資排名第5到第10的員工資訊?1分 功能 排序 序號偽列 範圍查詢 思路 1.按照薪資降序排序 2.對查詢結果表新增需要的列 3.擷取5 10資料,select employee id,first name,salary from select e.e...