how2j.cn

步骤 1 : 练习   
步骤 2 : 答案   

查询部门编号大于等于50小于等于90的部门中工资小于5000的员工的编号、部门编号和工资
显示员工姓名加起来一共15个字符的员工
显示不带有“ R ”的员工的姓名
查询所有员工的部门的平均工资,要求显示部门编号,部门名,部门所在地(需要多表关联查询: employees, department, location)
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
在查看答案前,尽量先自己完成,碰到问题再来查看答案,收获会更多
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法
查看本答案会花费5个积分,您目前总共有点积分。查看相同答案不会花费额外积分。 积分增加办法
账号未激活 账号未激活,功能受限。 请点击激活
查询部门编号大于等于50小于等于90的部门中工资小于5000的员工的编号、部门编号和工资 select e.employee_id, e.department_id,e.salary from hr.employees e where e.department_id between 50 and 90 and e.salary < 5000 显示员工姓名加起来一共15个字符的员工 select * from hr.employees e where e.first_name||e.last_name like '_______________'; 显示示不带有“ R ”的员工的姓名 select * from hr.employees e where e.first_name||e.last_name not like '%R%'; 查询有员工的部门的平均工资,要求显示部门编号,部门名,部门所在地(需要多表关联查询: employees, department, location) select avg(e.salary), e.department_id,d.department_name,l.street_address from hr.employees e left join hr.departments d on e.department_id = d.department_id left join hr.locations l on d.location_id = l.location_id group by e.department_id ,d.department_name,l.street_address
查询部门编号大于等于50小于等于90的部门中工资小于5000的员工的编号、部门编号和工资
select e.employee_id, e.department_id,e.salary from hr.employees e where e.department_id between 50 and 90 and e.salary < 5000

显示员工姓名加起来一共15个字符的员工
select * from hr.employees e where e.first_name||e.last_name like '_______________';

显示示不带有“ R ”的员工的姓名
select * from hr.employees e where e.first_name||e.last_name not like '%R%';

查询有员工的部门的平均工资,要求显示部门编号,部门名,部门所在地(需要多表关联查询: employees, department, location) 
select avg(e.salary), e.department_id,d.department_name,l.street_address  from hr.employees e
left join hr.departments d
on e.department_id = d.department_id
left join hr.locations l
on d.location_id = l.location_id
group by e.department_id ,d.department_name,l.street_address


HOW2J公众号,关注后实时获知最新的教程和优惠活动,谢谢。


问答区域    
2020-04-07 第二问我用了length函数,但是查不出数据
田泽雨




第二问我用了length函数,但是查不出数据,
select e.first_name || ' '||e.last_name from hr.employees e
where length('e.first_name||e.last_name')=15
能运行。但查不出数据


1 个答案

13850628049
答案时间:2020-04-22
select e.first_name || ' '||e.last_name from hr.employees e
where length(e.first_name||e.last_name)=15



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到





2017-10-23 第四小题,如果没有group by 这一句为什么会出错呢?
Lazy250




如题,报错:ORA-00937 不是单组份函数
select avg(e.salary), e.department_id,d.department_name,l.street_address  from hr.employees e
left join hr.departments d
on e.department_id = d.department_id
left join hr.locations l
on d.location_id = l.location_id

							


8 个答案

inon
答案时间:2020-03-01
--查询部门编号大于等于50小于等于90的部门中工资小于5000的员工的编号、部门编号和工资 select employee_id,salary,department_id from hr.employees where department_id between 50 and 90 and salary < 5000; --显示员工姓名加起来一共15个字符的员工 select last_name || ' ' || first_name from hr.employees where last_name || ' ' || first_name like'_______________'; --显示不带有“ R ”的员工的姓名 select last_name || ' ' || first_name from hr.employees where last_name || ' ' || first_name not like '%R%'; --查询所有员工的部门的平均工资,要求显示部门编号,部门名(需要多表关联查询: employees, department, location) select * from hr.departments select avg(e.salary),d.department_id,d.department_name from hr.employees e left join hr.departments d on e.department_id = d.department_id group by d.department_id,d.department_name;

Lmy199612
答案时间:2019-07-18
不是也可以用length,楼主答案用的也是length函数,他的 select first_name||last_name len from hr.employees 相当于 select first_name||last_name as len from hr.employees 然后length(len),一样的

ge shu
答案时间:2018-09-01
SuperKuma
答案时间:2018-04-22
因为sum,count,max,min,avg这类的函数不是单组函数,他们的值是动态的,必须有个范围才能约束值,默认就是全局范围,但是如果同时select了其他字段的话,就要用group by 手动分组了,不分组的假设可以运行的话,函数以外的字段都会列出来,然后里面一堆单个显示的重复记录,然后像sum这样的函数在后面显示又有什么意义呢,你一条记录就一个数据。

lixinjia_65
答案时间:2018-01-20
因为爱所以爱

DaiJue
答案时间:2017-11-29
出错是因为,分组的时候,查询字段,只能是统计函数,或者被分组的字段 你可以在后面加group by e.department_id,d.department_name,l.street_address

Jinwen
答案时间:2017-11-25
第二个也可以使用length函数
select * from hr.employees e
where length(e.first_name||e.last_name)=15

970121ding
答案时间:2017-11-13
查询部门编号大于等于50小于等于90的部门中工资小于5000的员工的编号、部门编号和工资 select e.employee_id, e.department_id,e.salary from hr.employees e where e.department_id between 50 and 90 and e.salary < 5000 显示员工姓名加起来一共15个字符的员工 select * from hr.employees e where e.first_name||e.last_name like '_______________'; 显示示不带有“ R ”的员工的姓名 select * from hr.employees e where e.first_name||e.last_name not like '%R%'; 查询有员工的部门的平均工资,要求显示部门编号,部门名,部门所在地(需要多表关联查询: employees, department, location) select avg(e.salary), e.department_id,d.department_name,l.street_address from hr.employees e left join hr.departments d on e.department_id = d.department_id left join hr.locations l on d.location_id = l.location_id group by e.department_id ,d.department_name,l.street_address



回答已经提交成功,正在审核。 请于 我的回答 处查看回答记录,谢谢
答案 或者 代码至少填写一项, 如果是自己有问题,请重新提问,否则站长有可能看不到









提问之前请登陆
提问已经提交成功,正在审核。 请于 我的提问 处查看提问记录,谢谢
关于 数据库-oracle-阶段性练习2 的提问

尽量提供截图代码异常信息,有助于分析和解决问题。 也可进本站QQ群交流: 578362961
提问尽量提供完整的代码,环境描述,越是有利于问题的重现,您的问题越能更快得到解答。
对教程中代码有疑问,请提供是哪个步骤,哪一行有疑问,这样便于快速定位问题,提高问题得到解答的速度
在已经存在的几千个提问里,有相当大的比例,是因为使用了和站长不同版本的开发环境导致的,比如 jdk, eclpise, idea, mysql,tomcat 等等软件的版本不一致。
请使用和站长一样的版本,可以节约自己大量的学习时间。 站长把教学中用的软件版本整理了,都统一放在了这里, 方便大家下载: https://how2j.cn/k/helloworld/helloworld-version/1718.html

上传截图