在 SQL 中,排序输出是指对查询结果中的数据进行排序,以便按特定的顺序显示。排序输出在数据分析、报告和可视化中非常有用。
排序子句
在 SQL 查询中,使用 ORDER BY 子句对数据进行排序。ORDER BY 子句后面跟着一个或多个排序表达式,每个表达式指定一个排序列和一个排序顺序(ASC 或 DESC)。
语法如下:
sql
SELECT column1, column2, ...
FROM table_name
ORDER BY column1 ASC, column2 DESC;
排序表达式
排序表达式指定要排序的列及其排序顺序。排序顺序可以是升序 (ASC) 或降序 (DESC)。
以下示例对名为 "customers" 的表进行排序,按 "name" 列升序排序,然后按 "age" 列降序排序:
sql
SELECT name, age
FROM customers
ORDER BY name ASC, age DESC;
多个排序列
可以按多个列进行排序。排序表达式按从左到右的顺序应用。这意味着最左边的排序列具有最高的优先级。
以下示例按 "name" 列升序排序,然后按 "age" 列降序排序,再按 "salary" 列升序排序:
sql
SELECT name, age, salary
FROM customers
ORDER BY name ASC, age DESC, salary ASC;
NULL 值的处理
对于包含 NULL 值的列,NULL 值通常会排在非 NULL 值的前面。可以通过使用 IS NULL 和 COALESCE 函数来控制 NULL 值的处理。
以下示例按 "name" 列升序排序,将 NULL 值排在非 NULL 值的后面:
sql
SELECT name
FROM customers
ORDER BY CASE
WHEN name IS NULL THEN 1
ELSE 0
END, name ASC;