sql练习总结(一)
来源:互联网 发布:批处理编程 编辑:程序博客网 时间:2024/05/17 20:27
写出一条Sql语句:取出表A中第31到第40记录(SQLServer,以自动增长的ID作为主键,注意:ID可能不是连续的。
把所能想到的实现方法都做了一遍:
1.用集合查询
select top 40 * from T_Testexceptselect top 30 * from T_Test
2.用NOT IN 谓词
select top 10 * from T_Test where Idnot in(select top 30 Id from T_Test)
3.用ALL谓词
select top 10 * from T_Test where Id>all(select top 30 Id from T_Test)
4.用MAX聚集函数
select top 10 * from T_Test where Id>(select MAX(Id) from (select top 30 Id from T_Test) as A)
这里有些问题,因为 带有 top子句 的子查询 没有 order by 子句 排序的话,MAX(Id)作用的就是T_Test基本表,而不仅仅是A这个结果集,所以MAX(Id)会取到整个T_Test表的最大值,从而整个查询没有结果。
改正:
select top 10 * from T_Test where Id>(select MAX(Id) from (select top 30 Id from T_Test order by Id) as A)
5.用开窗函数
select Id,Name from (select *, ROW_NUMBER() over(order by Id) as num from T_Test) as Swhere S.num between 31 and 40
最后:水平有限,欢迎大家指教,共同学习进步!
0 0
- sql练习总结(一)
- sql语法练习(一)
- SQL练习+答案(一)
- 第四十二天-第五十二 天:sql语句和语法的练习总结(一)
- SQL总结(一)
- 关系代数和SQL练习(一)
- SQL练习(一)
- SQL基础练习一
- SQL练习(一)
- SQL 练习总结
- 基础JavaScript练习(一)总结
- Oracle练习总结一
- SQL注射总结(一)
- SQL学习总结(一)
- SQL 知识总结(一)
- SQL Profile 总结(一)
- SQL Profile 总结(一)
- SQL总结(一)SQL的分类
- 思前想后,还是开通了自己的博客
- Spring 入门, Spring 是什么,好处,体系结构
- Powershell使用哈希表
- [LeetCode] Spiral Matrix
- SQL Server 2008 数据库同步 (发布、订阅)
- sql练习总结(一)
- Hibernate查询方式汇总
- Linux书目
- 第十四周项目2-形状类族的中的纯虚函数
- Java项目如何记录日志
- 新疆抓获一暴恐团伙 缴获1.8吨爆炸装置原料
- Linux内核之内存管理(4)--缺页处理程序
- 【Objective-C】Objective-C占位符使用
- hdu1272小希的迷宫