sql 中 order by 子句對(duì)結(jié)果集中的行進(jìn)行排序,以按特定順序顯示數(shù)據(jù)。它按升序或降序?qū)σ粋€(gè)或多個(gè)列進(jìn)行排序,并支持多列排序、空值處理等高級(jí)用法。
SQL 中 ORDER BY 的作用
在 SQL 中,ORDER BY 子句用于對(duì)結(jié)果集中的行進(jìn)行排序。它允許您根據(jù)一個(gè)或多個(gè)列按升序或降序排列數(shù)據(jù)。
主要作用:
排列結(jié)果集:對(duì)從查詢中返回的行進(jìn)行排序,從而按特定順序顯示數(shù)據(jù)。
按特定列分組:將行分組到具有相同值的一組列中,然后再對(duì)每一組進(jìn)行排序。
語法:
<code>SELECT ... FROM ... WHERE ... ORDER BY column_name1 [ASC | DESC], column_name2 [ASC | DESC], ...;</code>
登錄后復(fù)制
column_name:要排序的列的名稱。
ASC:按升序排序(從最小到最大)。
DESC:按降序排序(從最大到最小)。
示例:
讓我們考慮一個(gè)包含人員信息的表:
<code>CREATE TABLE persons ( id INT PRIMARY KEY, name VARCHAR(255), age INT );</code>
登錄后復(fù)制
要按姓名升序排列表中的人員,我們可以使用以下查詢:
<code>SELECT * FROM persons ORDER BY name ASC;</code>
登錄后復(fù)制
這會(huì)返回按姓名從 A 到 Z 排序的行。
高級(jí)用法:
ORDER BY 子句還支持一些高級(jí)用法:
多列排序:一次對(duì)多個(gè)列進(jìn)行排序,例如按姓名升序,再按年齡降序。
空值處理:指定空值是排在第一位還是最后一位。
NULLS FIRST/LAST:將 NULL 值排在結(jié)果集的最前面或最后面。
通過使用 ORDER BY 子句,您可以高效地組織和排列數(shù)據(jù),從而簡化查詢和報(bào)告的生成。






