【SQL · 第三弹】Order By的用法,你知道吗?

原标题:【SQL · 第三弹】Order By的用法,你知道吗?

上一期的SQL第二弹 ,我们给大家介绍了SQL中

Select语句的基本用法

本期,小编为大家带来Select语句的进阶用法

话不多说,

以下部分资料来源于:W3school

链接http://www.w3school.com.cn/sql/index.asp

如图将会是我们今天要用的database的Person表

Select- AND - OR

敲下如下代码:

Select * from Person where FirstName='Thomas'

ANDLastName='Carter'

翻译一下上面的code: 把所有列,从Person这个表中提取出来,当FirstName为Thomas并且LastName为Carter。

Select * from Person where FirstName='Thomas'

ORLastName='Carter'

翻译一下上面的code: 把所有列,从Person这个表中提取出来,当FirstName为Thomas或者LastName为Carter。

这就是我们高中数学所学的内容啦~且与或的不同,且:两者均为真,才为真;或:两者中有一个真,就为真。

Order by

这个表是一张非常简单的表,我们叫它Orders,这个表由两列组成,一列是Company, 一列是OrderNumber。Order Number,即订单号码,代表不同的订单,接下来我们试一下按照公司名称顺序排列,和按照OrderNumber顺序排列两种情况。

Select Company, OrderNumber from Orders

order by Company

首先我们要注意,这里面from Orders order by这两个Order是完全不同的东西,前者代表上面那张表,后者代表一个命令。当然,这跟他们的大小写完全没有关系,毕竟SQL语句是大小写不敏感的~

我们可以看到公司名称按照了字母表的顺序排列,如果公司名称相同的话,则不会自动按照OrderNumber来进行排序,那如果我希望得到如下一张表,该如何实现呢?

这里我们可以分列来看,公司名称按照顺序排列,(得出一个结论过会可以用order by Company),OrderNumber呢?并没有显著的顺序,那再回过头看一下相同公司名称的时候OrderNumber是不是顺序也是从小到大的?这个时候,需要在上面的code中再加一个针对OrderNumber的排序。

Select Company, OrderNumber from Orders

order by Company, OrderNumber

辣么,要实现这个版本,我要如何做到呢?

只需要加一个DESC用来表示descend的排序(降序排列),那一般默认的ASC即为ascend(升序排列)。

Select Company, OrderNumber from Orders

order by Company DESC

那么问题又来了,要实现这一个排序功能,我要如何code呢?

不知道同学们在小编给出的code中有没有发现SQL这类编程的规律。那就是首先你要仔细地研究你想要得到的内容,它是怎样选择的,是排序的,在之后的内容中,还会涉及到多个表格之间的关联。那么去定义你想要得到的这个表格就非常重要,我需要哪些项,分别from哪些表格,他们中的哪些部分是需要的,哪些是不要的,又有哪些是共有的可以关联在一起的。在前期有一个思路是非常重要的!

这就跟求职一样,你能不能在求职前,有一个清晰的定位和规划,将成功决定你求职的难度系数。One Career第七期求职公开课盛大开讲,就在明天,我们不见不散!

重磅!求职哪有那么难?One Career第七期求职公开课盛大开讲,最强导师团队为你指点迷津

精彩

推荐返回搜狐,查看更多

责任编辑:

平台声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
阅读 ()
推荐阅读