📅  最后修改于: 2023-12-03 14:45:34.762000             🧑  作者: Mango
在 PostgreSQL 中,我们可以使用 ORDER BY
子句来对查询结果进行排序。
SELECT column1, column2, ...
FROM table_name
ORDER BY column1, column2, ... ASC|DESC;
其中:
SELECT
:需要查询的列名FROM
:数据源的表名ORDER BY
:指定需要排序的列名,并且可以加上 ASC 或 DESC,表示升序和降序,默认为升序排列。考虑以下结构的 employees
表:
| id | name | age | salary | | ---- | ----- | --- | ------ | | 1 | Alice | 23 | 5000 | | 2 | Bob | 32 | 7000 | | 3 | John | 27 | 6000 | | 4 | Mary | 31 | 8000 | | 5 | Lucy | 24 | 5500 |
现在我们想要让这个表格按照薪水从高到低进行排序,那么我们可以执行以下语句:
SELECT * FROM employees ORDER BY salary DESC;
得到的结果应该是:
| id | name | age | salary | | ---- | ----- | --- | ------ | | 4 | Mary | 31 | 8000 | | 2 | Bob | 32 | 7000 | | 3 | John | 27 | 6000 | | 1 | Alice | 23 | 5000 | | 5 | Lucy | 24 | 5500 |
我们还可以按照多个列进行排序。例如,现在我们想先按照年龄进行升序排序,再根据薪水从高到低进行排序,那么我们可以执行以下语句:
SELECT * FROM employees ORDER BY age ASC, salary DESC;
得到的结果应该是:
| id | name | age | salary | | ---- | ----- | --- | ------ | | 1 | Alice | 23 | 5000 | | 5 | Lucy | 24 | 5500 | | 3 | John | 27 | 6000 | | 2 | Bob | 32 | 7000 | | 4 | Mary | 31 | 8000 |
ORDER BY
子句时,如果涉及到多个表,需要在列名前加上表名或表别名。LENGTH(column)
函数。