相信很多同学在使用group by时都有遇到提示标识符无效的问题,别急,下面我们来总结一下遇到此类问题的常见解决方法:
例:取每个部门年龄最小的员工信息
我的sql语句如下:
select name,min(age),(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif group by name,deptname
点击执行时,系统提示:
ORA-00904:"deptname":标识符无效
出错原因:group by 后面的字段不能是别名(如果要使用别名,需在嵌套一层)
- 解决方案一:
--goup by 后面的部门名称(别名:deptname )直接用员工信息表的deptid字段
select name,min(age),(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif group by uif.name,uif.deptid
- 解决方案二:
--嵌套一层后再进行分组
select us.name,min(us.age),us.deptname from (select name,age,(select deptname from dept d where d.deptid=uif.deptid)deptname from userinfo uif)us
group by us.name,us.deptname
怎么样,这次学会了吗,如果还有什么问题,欢迎留言一起学习哟~