浅谈sqlsever的 order by 语句

浅谈 sql中order by
关于order by主要是用于升序、降序。但是要深入了解其它、会发现,其实order by语句并不是我们想象中的那么简单。
接下来说说 order by 的一般用法。

1、关于数字和日期的比较:

这个很应该很简单、就不多说了。

2、关于字符串的比较。

我想、学软件的,基本都学过一点C语言,那么对于字符串的比较,其实就是比较第一个字母的ascii码值,如果第一个字母相等、那么就比较第二个、依次类推。
如果是汉字做比较的话,其实可以把汉字用拼音拼起来、用他们的拼音的首个ascii码值做比较、如果第一个相同,就比较后面一个、依次类推。
如果汉字和拼音做比较、那么、汉字永远比拼音高;
(注:ascii码值中只用记得
A=65 a=97
他们后面的字母、依次加一
汉字也有ascii码值,标准码一般都是 几万 不便记忆)

3、对于字符的比较:

例如字符 23 和123做比较:
实质上是拿 23中的2和123中的1做比较
也就是说、不管字符有多长都是从第一位比较、依次类推;

打个比方 2个数字 2和 1.3453453543453做比较
我们只用先看地一位、后面哪怕跟在多的数字也不起作用、如果第一位相等了,才考虑后面的数字。


4、对于空值的排序

在sql中、null值为最小、也就是说、数据中的数字有多么小、这个null值总是比他们还要小、但是在oracle中、null值为最大。
但是、我们可以手动改变null的值
其语法是 isnull(列名,值)
(注:实质上是在内存中null的地方、给他插入一个值)


关于多条件排序
例如

select * from 表 order by 列1,列2
等于与
select * from 表 order by 列1 asc,列2 asc
因为asc为默认、也就是说、我们不在后面加asc关键字都会升排序

其实质意义就是、先按照列1的值排序,当列1中有重复数据的时候、在按列2里面的值来排序,如果有列3、就是按照列2里面的重复数据来排列
(注:列2的排序仅仅存在于列1的重复数据的排序)

当然在这里、我们也可以用到计算列
假若说、我们想要一排数据降序排序、最简单的方式就是、
select * from 表 order by -列
给order by 后面的列名一个负号、就可以轻松达到这一点。
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值