order by

order by是用来排序的。

order by 可以对好几种类型排序。

1.对数字和日期进行排序。

2.对汉字(按字母顺序,按字母的全拼排);

3.对字符型的数字(从左到右的排序);

4.对NULL的排序(重点)。

在细讲之前还是提一下,在使用order BY 的时候,有两种排序的方式:一是升序排列;二是降序排列。你如果想按照升序排列,你可以用 order by 列名 asc,你也可以什么都不用,因为系统默认的排序方式是升序排列。如果你想要的降序排列,可以用 order by 列名 desc,但是如果你不想在后面使用‘desc’也想要降序排列。

看到了有一道题:就是不使用‘desc’也要得出成绩是降序的排列,当时在我脑中出想的是:可以用每个成绩减去最高的那个分数,得到的负数,数越小负的就越多,这样也可以得到降序排列。其实最后出来的答案更简单,就是小小的一个符号就解决了。order by -成绩,就是这个‘-’就可以了,可见数据库是多么的灵活。
对于第一种呢,对数字和日期的排序么有什么难点就是按照一般数字的大小排序,只要你会数数就可以简练它是否正确。日期也差不多,如:2009-09-8 2009-08-08两者比较。他们是从左向右一次比较的。

对汉字的排序,更精确的说它是按汉字的全拼进行排序,也是按ASCII来排序。

对字符型的数字排序就和我们平时的思维有一点不同了,例如:1,12,4,3,23,2,21

排序结果是:1,12,2,21,23,3,4。 它们的排序是从左向右的。

NULL数据库不是万能的,它对这个null就有一点没有办法了,因为他也不知道该把它放在那个位置合适,一般我们没有给它转换的时候,它一般都会出现在第一排和最后一排。所以一般我们在进行排序的时候都要对null转换[order by is null(列名,0)]。也就是在空间中把null的值转换成0 。当然转换的值是不确定的,他是根据你的需求来给值的。

当然排序还有单列排序和多列排序。

但序排列很简单,就是 select 列A 列B 列C from 表名 order by 列A。但需排列显示的是单行的,多行排序可以显示多行信息。
select 列A 列B 列C from 表名 order by 列A 列B...

列A先排序当出现相同的信息的时候,进行排列B的信息,再拍后面的。这样类推,直到排列完成。在这里面也可以使用asc、desc .

order by 还有一个很好玩的地方。就是:

select 列A 列B 列C from 表名 order by <字段名>;

这样子很简单,可是一般不用这个,上级也不允许。因为:如果有人把前面的列名改掉了,后面的也会出错。

order by 的用处很大,用的地方也很多。大家要谨记哦。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值