阅读量:0
Oracle SQL 的 ORDER BY 子句支持以下几种排序方式:
- 升序排序(ASC):默认情况下,ORDER BY 会按照升序对数据进行排序。如果需要明确指定升序排序,可以在列名后加上 ASC 关键字。
示例:
SELECT * FROM employees ORDER BY salary ASC;
- 降序排序(DESC):如果需要按照降序对数据进行排序,可以在列名后加上 DESC 关键字。
示例:
SELECT * FROM employees ORDER BY salary DESC;
- 多个列的排序:可以按照多个列进行排序,用逗号分隔列名。默认情况下,排序会按照列名出现的顺序进行排序。
示例:
SELECT * FROM employees ORDER BY department_id, salary DESC;
- 使用 NULLS FIRST/LAST 控制空值排序:默认情况下,NULL 值会被排在结果集的末尾。如果需要将 NULL 值排在结果集的开头,可以使用 NULLS FIRST 关键字;反之,可以使用 NULLS LAST 关键字。
示例:
SELECT * FROM employees ORDER BY department_id NULLS FIRST, salary DESC;
- 使用函数或表达式进行排序:除了直接对列名进行排序外,还可以使用函数或表达式进行排序。
示例:
SELECT * FROM employees ORDER BY LENGTH(last_name) DESC;
- 使用 CASE 语句进行条件排序:可以使用 CASE 语句根据特定条件对数据进行排序。
示例:
SELECT * FROM employees ORDER BY CASE WHEN salary > 5000 THEN 1 ELSE 0 END DESC, salary DESC;
这些是 Oracle SQL 中 ORDER BY 子句支持的常见排序方式。在实际应用中,可以根据需求选择合适的排序方式。