SQL Sever学习笔记七——对查询结果进行排序——ORDER BY子句

ORDER BY子句

使用SELECT语句从表中查询数据时,不保证结果集中的行顺序。 这意味着SQL Server可以返回具有未指定行顺序的结果集。保证结果集中的行已排序的方法是使用ORER BY子句。 以下是ORDER BY子句的语法:

1、格式:

SELECT
    <列名1>, <列名2>,...
FROM
    <表名>
ORDER BY
    <排列基准1> ,<排列基准2>,...<ASC | DESC>
   
  • <排列基准1> ,<排列基准2>,…指定要对查询结果集进行排序的列名或表达式。 如果指定多个列,则结果集按第一列排序,然后该排序结果集按第二列排序,依此类推。ORDER BY子句中出现的列必须对应于选择列表中的列或FROM子句中指定的表中定义的列。
  • ASC | DESC - 使用ASC或DESC指定是否应按升序或降序对指定列中的值进行排序。ASC将结果从最低值排序到最高值,而DESC将结果集从最高值排序到最低值。如果未明确指定ASC或DESC,则SQL Server将默认使用ASC来排序顺序。 此外,SQL Server将NULL被放在开头或者末尾。

2.书写顺序:select→from →where →group by→having→order by

执行顺序:from→where→group by→having→select→order by。

3.功能:对查询结果进行排序

4.演示:

--1.ORDER BY 子句,未指定排列顺序时会默认升序排列
select product_id,product_name,sale_price,purchase_price
from Product
order by sale_price;
--降序时,末尾加上DESC关键字
select product_id,product_name,sale_price,purchase_price
from Product
order by sale_price desc;
--2.指定多个排序键,规则:优先使用左侧的键,如果该列存在相同的值时,再接着参考右边的键
select product_id,product_name,sale_price,purchase_price
from Product
order by sale_price,product_id;
--3.使用含有null的列作为排序键时,null会在结果的开头或末尾汇总显示
select product_id,product_name,sale_price,purchase_price
from Product
order by purchase_price;
--4 排序键中可以使用别名的
select product_id as id,product_name,sale_price as sp,purchase_price
from Product
order by sp,id;
--5 order by 子句中也可以使用存在于表中、但并不包含在select子句之中的列
select product_name,sale_price,purchase_price
from Product
order by product_id;
--6 order by 子句中也可以使用聚合函数
select product_type,count(*)
from Product
group by product_type
order by count(*);

5.注意:

  • ORDER BY子句中不要使用列编号
  • 在ORDER BY子句中可以使用SELECT子句中定义的别名。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值