字段类型的问题,你表里字段的数据是数字,但是字段类型应该不是,将字段类型转换为数字,直接排序就可以了
创新互联公司从2013年开始,先为正蓝等服务建站,正蓝等地企业,进行企业商务咨询服务。为正蓝企业网站制作PC+手机+微官网三网同步一站式服务解决您的所有建站问题。
select * from 表名 t
order by to_number(字段名) desc
错误原因是:
(select max(sal) from emp group by deptno) maxSa
(select min(sal) from emp group by deptno) minSal
group by deptno放错了位置,应该在这里去掉,在from emp 后面加上。
最好的写法是:
select deptno,max(sal) as maxSal,min(sal) as minSal from emp
group by deptno
order by deptno desc
1、创建测试表,
create table test_name(id varchar2(20),name varchar2(20), birthday date);
2、插入测试数据;
insert into test_name values(1, 'aa', to_date('1990-01-02 10:10:50','yyyy-mm-dd hh24:mi:ss'));
insert into test_name values(2, 'bb', to_date('1987-02-02 10:01:25','yyyy-mm-dd hh24:mi:ss'));
insert into test_name values(3, 'cc', to_date('2000-01-25 09:01:25','yyyy-mm-dd hh24:mi:ss'));
commit;
3、编写语句,根据birthday字段进行升序;
select * from test_name t order by birthday;
4、编写语句,根据birthday字段进行降序;
select * from test_name t order by birthday desc;
ORDER BY的含义就是通过某个字段进行排序(默认是ASC,可以省略)。\r\nsql:select * from scores order by score DESC;\r\n以上语句就是通过score字段进行降序排序。\r\nsql:select * from scores order by score ;\r\n以上语句就是通过score字段进行升序排序。\r\n备注:DESC表示降序,ASC表示升序。
你 select 后面只写了sno。。。没有avg成绩,但是最后group by 了,当然会报错。还有你的sno没有指明是哪个表的,后面带了x和y,sc表也需要指明。
平均成绩也没搞明白。。
那只能这样
select a.sno,a.name,avg(b.score) as avgscores from sc a,course b where a.sno =b.sno and b.cno in ('001','002') group by a.sno,a.name order by avgscores desc
在sql最后加上 升序 order by table.column asc
降序 order by table.column desc