sql 查询年龄语句的问题

来源:百度知道 编辑:UC知道 时间:2024/07/08 19:35:34
已知一个student表,sno是学号,sage是年龄
那么如何查询这个学生表中年龄最大的学生的学号和年龄呢??有几种方法可以实现啊??各位高手帮忙想想告诉我啊。谢谢了先
另外,在sql语句 create table建student表时如何让 sname列的值唯一并且不为空呢?

select sno as 学号,max(sage) as 年龄 from student group by sno

create table student (sno varchar(20) not null primary key,sname varchar(10) not null,sage int unique (sname))
以上,希望对你有所帮助!

我这里有两个思想
1 利用MAX()函数直接找出列的最大值
2 对一个列进行排序也能找到最大值
至于定位三个列嘛 这个用SELECT student,sno,sage 就能实现
楼主应该懂了吧

select sno, sage from student where sage in (select max(sage) from student)

如果想让sname唯一且不为空,可以设为主键 或者加上UNIQUE约束 和 NOT NULL 属性

select top 1 sno,sage from student order by sage desc

select a.sno,a.sage from student as a inner join (select max(sage) as sage from student) as b on a.sage=b.sage

首先联合查询出学生,学号,年龄,按年龄排序,再选出年龄最大的。
上面的答案中有好多是先找年龄最大,再根据年龄找学生,这样有可能没结果