学生分数表,和学生信息表,连接后,得出科目 分数 学生ID 身高
化学 80 001 169
数学 90 001 169假设这是一个视图(或现在的表),叫学生视图在这个视图上搜,一个学生只显示一条结果。在选择哪条的策略上,可以采用,找出任意一条该学生的就行。化学 80 001 169也可以采用,找到分数最高的一条。数学 90 001 169
化学 80 001 169
数学 90 001 169假设这是一个视图(或现在的表),叫学生视图在这个视图上搜,一个学生只显示一条结果。在选择哪条的策略上,可以采用,找出任意一条该学生的就行。化学 80 001 169也可以采用,找到分数最高的一条。数学 90 001 169
解决方案 »
- 怎样在视图增加一列?
- SQL2005 Integration Services 问题,在做SQL Server导入导出的时候出现如下错误!
- 请帮忙看下面的能否合成一句
- 求在线考试系统数据库结构(包括判断、选择、填空)帮帮忙啊!!!!
- 紧急求助:分区表能通过分区视图实现分布式存储吗?
- JDBC 连接 sql 2005 ,sa 不能打开用户数据库 !请帮忙....
- 誰能告訴我sql server 2000的這三個錯誤事件的意思17055 , 17310 , 17311,Thanks.
- 如果有多个事务同时对一个表进行操作,会造成死锁吗?
- 这样的查询结果如何实现?
- 安装sql server2000后,“MDX示例应用程序”运行不了是怎么回事?
- 如何将多列合并为一列
- sql2005中order by在子查询和视图中没有作用,如何解决。
SELECT * FROM 学生视图 AS T
WHERE (SELECT COUNT(1) FROM 学生视图 AS B WHERE B.学生ID = T.学生ID AND B.分数 > T.分数) < 1
select * from tbl a
where not exists(select 1 from tbl b where a.学生ID=b.学生Id and a.score<b.score)
楼上三种方法都是啊。你随便选一种:
还有就是:select * from(
select *,
px=row_number()over(partition by ID order by score desc) from tbl )t
where px=1
select * from(
select *,
px=row_number()over(partition by ID order by newid()) from tbl )t
where px=1
这样好像不行,因为上面的语句中查询出来的px全为1,所以,查询效果相当于WHERE 1=1,也就是条件判断失效了,能不能改进一下呢?