sqlserver2008中在实现limit功能的同时实现order by 排序功能
来源:互联网 发布:淘宝买家怎么提升信誉 编辑:程序博客网 时间:2024/05/21 06:59
在sqlserver中,以前在CTE查询中无法进行order by 操作,或者在子查询中也无法实现order by 操作。诸如:
/*以下两条语句都是无法执行的*/
WITH StudentListCTE AS( SELECT top * FROM Student WHERE schoolId = @schoolId ORDER BY pinyin ASC )SELECT *FROM StudentListCTE;SELECT *FROM ( SELECT * FROM Student WHERE schoolId = @schoolId ORDER BY pinyin ASC )AS TableStudent
因此要想实现以上的两种查询方式中进行order by必须指定top + number操作,但有时候我们需要查询所有的记录,无法确定number值。但我们可以通过以下方式进行实现
WITH StudentListCTE AS( SELECT top 100 percent * FROM Student WHERE schoolId = @schoolId ORDER BY pinyin ASC )SELECT *FROM StudentListCTE;SELECT *FROM ( SELECT top 100 percent * FROM Student WHERE schoolId = @schoolId ORDER BY pinyin ASC )AS TableStudent
同时sqlserver 可以通过row_number()函数结合top 100 percent实现类似mysql的limit功能并进行排序操作
USE AdventureWorks;GOWITH OrderedOrders AS( SELECT TOP 100 percent SalesOrderID, OrderDate, ROW_NUMBER() OVER (ORDER BY OrderDate DESC) AS 'RowNumber' FROM Sales.SalesOrderHeader where orderdate >= '2013-04-01' ORDER BY orderDate DESC ) SELECT * FROM OrderedOrders WHERE RowNumber BETWEEN 10 AND 20;
- sqlserver2008中在实现limit功能的同时实现order by 排序功能
- 在SQL Server中实现 Limit m, n 的功能
- 在SQL Server中实现 Limit m, n 的功能
- 在SQL Server中实现 Limit m, n 的功能
- Hibernate中实现MYSQL的limit功能
- oracle实现"limit"功能
- oracle实现"limit"功能
- oracle实现"limit"功能
- MySQL的limit在SQLServer2008 中用top实现
- MySQL中实现Oracle里面 rank()over ( PARTITION BY ORDER BY) 分类分组功能
- 排序功能的实现
- 排序功能的实现
- mysql 数据库中 WHERE / ORDER BY/GROUP BY/LIMIT 几个限制条件的排序
- order by实现数据排序
- order by实现数据排序
- 【转】MySQL实现Oracle里的 rank()over(ORDER BY) 功能
- php二维数组多字段排序实现mysql order功能
- mysql中使用limit要使用order by排序
- Android 实用工具Hierarchy Viewer实战
- 基于jquery的五子棋单机版
- 查找第N大的数
- fcntl用法及分析
- NameNode 源码剖析
- sqlserver2008中在实现limit功能的同时实现order by 排序功能
- 统计数x的二进制表示中1的个数
- 父类 子类 初始化顺序
- 【tool】编码问题。。
- .NET设计模式(1): 简单工厂
- 20条编程经验
- Camera使用二(笔记)
- bat命令书写之空格问题
- HDU-4541-Ten Googol