快乐SQL复习 - ORDER BY结果排序和LIMIT,OFFSET子句

如果我们想要排序我们筛选出来的结果,比如说,按年龄从大到小排序,按单价从便宜到贵排序,应该怎么做呢?

我们会用到ORDER BY关键字,语法如下:

SELECT column, another_column, …

FROM table

WHERE condition(s)

ORDER BY column ASC/DESC

在这里,ASC 和 DESC 的意思分别是升序和降序, asc 是ascend,升序的意思,1,2,3,4,5就是升序。而DESC 是descend, 降序的意思,5,4,3,2,1就是降序。

我们来举个栗子实践一下:

这是一个消费者的表,表名为:consumer

快乐SQL复习 - ORDER BY结果排序和LIMIT,OFFSET子句_第1张图片

我们想让他按照年龄升序排序,应该这样来写:

SELECT * FROM consumer

ORDER BY age ASC

输出结果为:

快乐SQL复习 - ORDER BY结果排序和LIMIT,OFFSET子句_第2张图片

那如果我们只想看女性的消费者,并且按年龄的降序排序呢?

SELECT * FROM consumer

WHERE gender LIKE "F"

ORDER BY age DESC


LIMIT 和 OFFSET 子句

LIMIT 和 OFFSET 子句通常和ORDER BY 语句一起使用,当我们对整个结果集排序之后,我们可以 LIMIT 来指定要返回多少行结果 , 用 OFFSET来指定从哪一行开始返回。(如果offset 3,就是从第四行开始)

意思就是说,LIMIT决定数量,OFFSET决定起点。

语法如下:

SELECT column, another_column, …FROM table

WHERE condition(s)

ORDER BY column ASC/ DESC

LIMIT num OFFSET num

举个栗子,我只想要consumer表格里,年龄最小的三个consumer,我应该怎么写呢?

答案:

SELECT * FROM consumer

ORDER BY age DESC

LIMIT 3

输出:

快乐SQL复习 - ORDER BY结果排序和LIMIT,OFFSET子句_第3张图片

那如果想要他从第三位开始算起呢?

我们应该这么写:

SELECT FROM consumer

ORDER BY age  DESC

LIMIT 3

OFFSET 2

这就是关于order by的复习啦~

喜欢的话可以收藏~也可以给兔子点个赞噢~奥利给!

你可能感兴趣的:(sql)