解决方案 »
- 列转行/计算
- 老师们,有个小更新的问题根据同表中某字段来UPDATE数据,帮忙下
- 一个奇怪的sql问题!
- 怎样用Delphi的代码实现启动SQL Server的服务,
- replace语句的使用方法:
- MS SQL Server不支持枚举类型怎么办?
- 求助:合并完全不同的两个表的查询结果,再把合并后的结果进行分页。有代码
- 有对SQL SERVER的数据复制熟悉的朋友吗?最好是有实际开发经验的,进来帮兄弟解决个难题!先谢了
- 在SQL查询中,我要用到当前日期减去一个星期,要怎样做呢?谢谢,急急!!
- 怎么把多个查询条件变成列?
- 请教考勤刷卡5分钟内取一笔刷卡记录的功能。
- 请问以下的sql可以怎么优化呢?
FROM 学生表 学生表1 where 学生表1.学号 IN
(...)
这个结构理解是什么意思吗?
SELECT TOP 2 学生表.学号
FROM 学生表
WHERE 学生表.功课编号 = 学生表1.功课编号
ORDER BY 学生成绩 DESC
这个是查询功课编号相同的前两条记录的学号
这已经是最简单的嵌套查询了,我真不知道该如何解释...如果与exists\group having\cte之类的语句估计你还要晕
FROM 学生表 学生表1 where 学生表1.学号 IN ---按照学生成绩来排序
(SELECT TOP 2 学生表.学号
FROM 学生表
WHERE 学生表.功课编号 = 学生表1.功课编号 ----查询编号相同的前2位的学生的学号
ORDER BY 学生成绩 DESC)
FROM 学生表
WHERE 学生表.功课编号 = 学生表1.功课编号
ORDER BY 学生成绩 DESC
这个查询不是返回两条记录吗?为什么最终查询结果会有6条?
但是加上Where变成这样select distinct s.* from student,student as s where s.stid in (select top 2 stid from student where student.cid=s.cid order by student.chengji DESC)就有六条记录了,也就是说Where 不但没筛选反而使记录增加了,这是怎么回事呢?
FROM 学生表 学生表1 where 学生表1.学号 IN
(SELECT TOP 2 学生表.学号
FROM 学生表
WHERE 学生表.功课编号 = 学生表1.功课编号
ORDER BY 学生成绩 DESC)
这个查询中,子查询
SELECT TOP 2 学生表.学号
FROM 学生表
WHERE 学生表.功课编号 = 学生表1.功课编号
ORDER BY 学生成绩 DESC
到底查询出几个记录?是不是两个?明明是Top2嘛
WHERE 学生表.功课编号 = 学生表1.功课编号
到底限定了什么样的选择条件呢?