ORDER BY 子句按一列或多列(最多 8,060 个字节)对查询结果进行排序。
从 Microsoft SQL Server 2005 开始,SQL Server 允许在 FROM 子句中指定对 SELECT 列表中未指定的表中的列进行排序。ORDER BY 子句中引用的列名必须明确地对应于 SELECT 列表中的列或 FROM 子句中的表中的列。如果列名已在 SELECT 列表中有了别名,则 ORDER BY 子句中只能使用别名。同样,如果表名已在 FROM 子句中有了别名,则 ORDER BY 子句中只能使用别名来限定它们的列。
排序可以是升序的 (ASC),也可以是降序的 (DESC)。如果未指定是升序还是降序,就假定为 ASC。
下面的查询返回按 ProductID
升序排序的结果:
USE AdventureWorks;
GO
SELECT ProductID, ProductLine, ProductModelID
FROM Production.Product
ORDER BY ProductID
如果 ORDER BY 子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序 Production.Product
表中的行,然后在每个产品子类别中按 ListPrice 升序排序这些行。
USE AdventureWorks;
GO
SELECT ProductID, ProductSubcategoryID, ListPrice
FROM Production.Product
ORDER BY ProductSubcategoryID DESC, ListPrice
ORDER BY 子句的准确结果取决于被排序的列的排序规则。有关详细信息,请参阅使用排序规则。对于 char、varchar、nchar 和 nvarchar 列,可以指定 ORDER BY 操作按照表或视图中定义的列的排序规则之外的排序规则执行。可以指定 Windows 排序规则名称或 SQL 排序规则名称。例如,使用 Latin1_General 排序规则定义 AdventureWorks
数据库中的 Person.Contact
表的 LastName
列,但在下面的脚本中,使用 Traditional_Spanish 排序规则按升序返回列。
USE AdventureWorks;
GO
SELECT LastName FROM Person.Contact
ORDER BY LastName
COLLATE Traditional_Spanish_ci_ai ASC
GO
无法对数据类型为 text、ntext、image 或 xml 的列使用 ORDER BY。此外,在 ORDER BY 列表中也不允许使用子查询、聚合和常量表达式。但是,可以在聚合或表达式的选择列表中使用用户指定的名称。例如:
SELECT Color, AVG (ListPrice) AS 'average list price'
FROM Production.Product
GROUP BY Color
ORDER BY 'average list price'
ORDER BY 只保证查询的最外面的 SELECT 语句的排序结果。例如,考虑下面的视图定义:
CREATE VIEW TopView AS
SELECT TOP 50 PERCENT * FROM Person.Contact
ORDER BY LastName
然后查询视图:
SELECT * FROM TopView
尽管视图定义包含 ORDER BY 子句,但是该 ORDER BY 子句仅用于确定 TOP 子句返回的行数。查询视图自身时,SQL Server 不保证将对结果进行排序,除非明确指定,如下面的查询所示:
SELECT * FROM TopView
ORDER BY LastName
分享到:
相关推荐
C# 使用orderby 多字段 动态排序
MyBatisPlus条件构造器带条件排序方法orderBy、orderByDesc、orderByAsc使用示例代码
主要介绍了Oracle数据库中ORDER BY排序和查询按IN条件的顺序输出的方法,其中ORDER BY的排序结果需要注意其是否稳定,需要的朋友可以参考下
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志...
select * from LiWei order by name 找到中文数字在'一二三四五六七八九十'的位置 select id,name,SUBSTRING(name,2,1) as 中文数字,charindex(SUBSTRING(name,2,1),'一二三四五六七八九十') ...
activiti5.9修复mysql order by 排序bug 详情见博客地址:http://blog.csdn.net/qq413041153/article/details/7740773#comments
mysql 中order by 与group by的顺序是:selectfromwheregroup byorder by注意:group by 比order by先执行,order by不会对group by 内部进行排序,如果group by后只有一条记录,那么order by 将无效。要查出group ...
ORDER BY _column1, _column2; /* _column1升序,_column2升序 */ ORDER BY _column1, _column2 DESC; /* _column1升序,_column2降序 */ ORDER BY _column1 DESC, _column2 ; /* _column1降序,_column2升序 */ ...
排序查询(order by) 电商中:我们想查看今天所有成交的订单,按照交易额从... 支持多个字段进行排序,多字段排序之间用逗号隔开。 单字段排序 mysql> create table test2(a int,b varchar(10)); Query OK, 0 rows
本文介绍MySQL数据库中执行select查询语句,并对查询的结果使用order by 子句进行排序。 再来回顾一下SQL语句中的select语句的语法: Select 语句的基本语法: Select <列的集合> from <表名> where <条件>...
order by 从英文里理解就是行的排序方式,默认的为升序。 order by 后面必须列出排序的字段名,可以是多个字段名。 group by 从英文里理解就是分组。必须有“聚合函数”来配合才能使用,使用时至少需要一个分组标志...
比较乱~没来得及优化 有需要的可以参考 IE6 Opera 测试通过
适用情况: oracle 对查询结果进行排序时,被排序的栏位存在null值,且要指定NULL值排在最前面或者最后面 关键字:Nulls First;Nulls Last 默认情况:null 默认为最大值(即:asc 升序<小–>大>,null值排在最后...
数据库管理与应用 5.2.10使用ORDER BY子句排序查询的记录.pdf 学习资料 复习资料 教学资源
使用SELECT语句,我们通过WHERE子句和LIKE运算符对名字进行过滤,并使用ORDER BY子句对结果进行排序。在这个例子中,我们使用%Doe%作为通配符进行模糊匹配。 查询名为users的表中名字中包含"Doe"的用户数据,并按照...
使用ORDER BY子句后可以保证结果中的行按一定顺序排列。 语法格式: ORDER BY {列名 | 表达式 | 列编号} [ASC | DESC] , ... 说明:ORDER BY子句后可以是一个列名、一个表达式或一个正整数。正整数表示按结果表中该...
因为可能需要对数据库的记录进行重新排序。在这篇文章中,笔者就谈谈提高Order By语句查询效率的两个思路,以供大家参考。 在MySQL数据库中,Order by语句的使用频率是比较高的。但是众所周知,在使用这个语句时,...
oracle数据库中order by的一些高级用法,该文件中,从order by的基本应用到order by的高级运用,该文件中均有体现
因为服务器装的是英文版操作系统,没有中文包,所以碰见中文排序无法识别,所以使用OrderBy时需要单独处理下。 CultureInfo culture = CultureInfo.GetCultureInfo(zh-cn); List<TeamDto> teamDtos = teams ....