6、SQL Server 对结果集的排序以及谓词的使用(distinct、top)

对结果集的排序以及谓词的使用(distinct、top)

一、对结果集的排序

在SQL表中的数据是无序的,主键的作用唯一标识记录行。而不是对表进行排序。

若Select语句中没有使用Order by语句将按主键排列表中的数据。

注:如果要对记录行进行排序,最好使用Order by子句指定顺序。

SQL可以根据多个列进行排序,且用于排序的列不必是Select语句返回的列。

1、使用列名指定顺序

如:

select * from yuangong order by birthday,truename

2、使用表达式指定顺序

Select  lastname+’,’+firstname from customer order by 

lastname+’,’+firstname  asc

3、使用列别名指定顺序

Select  lastname+’,’+firstname  as  FullName  from customer order by 

FullName   asc

注:可以在Order By子句中使用别名,但在Where子句中不能,因为从逻辑上说

,Where子句是在查询刚开始时执行的,而Order By子句是最后执行的逻辑运算,

此时结果列及其别名都已经创建了。

4、使用列序号指定顺序

如:Select  firstname,lastname  from customer  order by 2

5、Order By 与排序规则

服务器的排序规则设置是在安装时确定的,但安装后也可以使用Collate关键字来设置

数据库或列的排序规则属性。

二、谓词的使用

Distinct ,Top  

1、Select Distinct

消除结果集中的重复记录行。对应的是all (默认)

注:是否重复基于输出列而不是底层数据表确定的。

如:

Select distinct  name,sex  from student

2、排名Top

语法: top  n | top n percent  [with ties]

一般搭配Order by 使用

对于top 来说,with ties 使得具有相同排名的行也会显示出来,如

top  3 显示排名前3的3行

top 3 with ties 显示排名前3的行,但如果一个名次有多个行,则可显示多行。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值