您好,欢迎来到三六零分类信息网!老站,搜索引擎当天收录,欢迎发信息
免费发信息
三六零分类信息网 > 泸州分类信息网,免费分类信息发布

sqlserver中order by 排序用法

2024/3/1 2:12:59发布14次查看
order by 语句用于根据指定的列对结果集进行排序,order by 语句默认按照升序对记录进行排序,如果您希望按照降序对记录进行排序,可以使用 desc 关键字。
排序可以是升序的 (asc),也可以是降序的 (desc)。如果未指定是升序还是降序,就假定为 asc。
下面的查询返回按 productid 升序排序的结果:
 代码如下 复制代码
use adventureworks2008r2;
go
select productid, productline, productmodelid
from production.product
order by productid;
如果 order by 子句中指定了多个列,则排序是嵌套的。下面的语句先按产品子类别降序排序 production.product 表中的行,然后在每个产品子类别中按 listprice 升序排序这些行。
代码如下 复制代码
 use adventureworks2008r2;
go
select productid, productsubcategoryid, listprice
from production.product
order by productsubcategoryid desc, listprice;
问题
同一个查询的结果集为什麽有时候是按他想要的顺序排列,有时候又不是,或者是在sql2000里是这个顺序,到了sql2005/2008又是那个顺序?
其实,只要语句里没有指定“order by”,sqlserver并不会按照顺序返回的。有可能你的表里有一个字段已经建立了索引
你想结果集按照那个建立了索引的字段排序,那么你不指定“order by”是没有问题的,因为表的存储顺序就是按照那个字段
的顺序排好序了,所以可以不指定“order by”,但是如果你没有在想排序的那个字段建立索引,或者在sql2000里建立了
索引,而在sql2005/2008里没有建立索引,那么就要明确地用“order by”指定。如果你没有指定,哪怕一模一样的查询,
结果集顺序这一次和上一次不一样是很正常的。
泸州分类信息网,免费分类信息发布

VIP推荐

免费发布信息,免费发布B2B信息网站平台 - 三六零分类信息网 沪ICP备09012988号-2
企业名录