WM Blog

SQL4-过滤和排序查询结果

Word count: 369Reading time: 1 min
2020/07/27 Share

尽管在数据库中的每一条数据是唯一的,但是对于查询结果来说可能不是,比如不同的电影可能在相同的年份上映。在这种情况下,SQL提供了一种去掉那些有重复列值的行通过 DISTINCT 关键字。

1
2
3
SELECT DISTINCT column, another_column, …
FROM mytable
WHERE condition(s);

因为 DISTINCT 关键字会盲目地去掉一些重复的行,我们将在之后知道如何基于特定的行来聚集(Grouping)使用 GROUP BY 子句。

排序结果

在现实场景中大量的数据在添加进数据库的时候是无序的,为了更好的阅读和理解查询结果,我们需要对查询得到的结果进行排序。
SQL提供了 ORDER BY 子句来给特定列的值进行升序或者降序排序。

1
2
3
4
SELECT column, another_column, …
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC;

当使用 ORDER BY 子句,每一行会基于给定列值的字母数字顺序排序

结果截取

另一个经常与 ORDER BY 子句一起使用的是 LIMITOFFSET 子句,他们可以用来现在结果的数量。
LIMIT 将会减少返回行的数量,可选的 OFFSET 将会指定从哪一行开始计算数量。

1
2
3
4
5
SELECT column, another_column, …
FROM mytable
WHERE condition(s)
ORDER BY column ASC/DESC
LIMIT num_limit OFFSET num_offset;

LIMITOFFSET 会在查询的其他部分完成之后才执行,我们将在之前详细讲到执行顺序的问题。

CATALOG
  1. 1. 排序结果
  2. 2. 结果截取