尽管在数据库中的每一条数据是唯一的,但是对于查询结果来说可能不是,比如不同的电影可能在相同的年份上映。在这种情况下,SQL提供了一种去掉那些有重复列值的行通过 DISTINCT 关键字。
1 | SELECT DISTINCT column, another_column, … |
因为 DISTINCT 关键字会盲目地去掉一些重复的行,我们将在之后知道如何基于特定的行来聚集(Grouping)使用 GROUP BY 子句。
排序结果
在现实场景中大量的数据在添加进数据库的时候是无序的,为了更好的阅读和理解查询结果,我们需要对查询得到的结果进行排序。
SQL提供了 ORDER BY 子句来给特定列的值进行升序或者降序排序。
1 | SELECT column, another_column, … |
当使用 ORDER BY 子句,每一行会基于给定列值的字母数字顺序排序
结果截取
另一个经常与 ORDER BY 子句一起使用的是 LIMIT 和 OFFSET 子句,他们可以用来现在结果的数量。
LIMIT 将会减少返回行的数量,可选的 OFFSET 将会指定从哪一行开始计算数量。
1 | SELECT column, another_column, … |
LIMIT 和 OFFSET 会在查询的其他部分完成之后才执行,我们将在之前详细讲到执行顺序的问题。