MS SQL Server 中的排序依據

WBOY
發布: 2023-09-17 16:53:04
轉載
1049 人瀏覽過

MS SQL Server 中的排序依据

Order by 是 SQL 中的一個子句。它用於按升序或降序對查詢的結果集進行排序。它可以使用一列或多列進行排序。在本文中,我們將討論 MS SQL Server 中的 Order by 子句。

文法

在 MS SQL Server 中使用 Order by 子句的語法如下 -

SELECT column1, column2, ...
FROM table_name
ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...;
登入後複製

語法解釋

  • SELECT column1, column2, ...:指定我們要從表格中檢索的欄位。

  • FROM table_name:指定我們要從中檢索資料的表格的名稱。

  • ORDER BY column1 [ASC|DESC], column2 [ASC|DESC], ...:依照指定列對結果集進行升序或降序排序。

升序排序

#預設情況下,Order by 子句會依照升序對結果集進行排序。要按升序對結果集進行排序,我們不需要明確指定 ASC 關鍵字。

範例 1

SELECT * FROM customers
ORDER BY customer_name;
登入後複製

在此範例中,結果集將根據 customer_name 欄位按升序排序。

範例 2

假設我們有一個名為「Employees」的表,其中包含以下列和資料 -

員工ID

員工姓名

部門

薪資

#1

約翰

IT

50000

#2

銷售

45000

#3

鮑伯

IT

55000

#4

愛麗絲

人力資源

#40000

#5

湯姆

人力資源

#42000

#如果我們想從Employees表中檢索所有資料並按Salary列升序排序,SQL查詢將會是 -

SELECT * FROM Employees
ORDER BY Salary;
登入後複製

上述查詢的輸出為 -

員工ID

員工姓名

部門

薪資

#4

愛麗絲

人力資源

#40000

#5

湯姆

人力資源

#42000

#2

銷售

45000

#1

約翰

IT

50000

#3

鮑伯

IT

55000

#依降序排序

要將結果集按降序排序,我們需要在列名後指定 DESC 關鍵字。

範例 1

SELECT * FROM customers
ORDER BY customer_name DESC;
登入後複製

在此範例中,結果集將根據 customer_name 欄位依降序排序。

範例 2

如果我們想要從員工表中檢索所有資料並按部門列降序排序,SQL 查詢將是 -

SELECT * FROM Employees
ORDER BY Department DESC;
登入後複製
登入後複製

上述查詢的輸出為

員工ID

員工姓名

部門

薪資

#2

銷售

45000

#1

約翰

IT

50000

#3

鮑伯

IT

55000

#5

湯姆

人力資源

#42000

#4

愛麗絲

人力資源

#40000

#

按多列排序

我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。

示例 1

SELECT * FROM customers
ORDER BY country, customer_name;
登入後複製
登入後複製

在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。

示例 2

如果我们想从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,SQL查询将是 -

SELECT * FROM Employees
ORDER BY Department DESC;
登入後複製
登入後複製

上述查询的输出为

员工ID

员工姓名

部门

薪资

2

销售

45000

1

约翰

IT

50000

3

鲍勃

IT

55000

5

汤姆

人力资源

42000

4

爱丽丝

人力资源

40000

按多列排序

我们还可以按多列对结果集进行排序。在本例中,Order by 子句首先根据第一列对结果集进行排序,然后根据第二列对结果集进行排序。

示例 1

SELECT * FROM customers
ORDER BY country, customer_name;
登入後複製
登入後複製

在此示例中,结果集将根据国家/地区列按升序排序。如果两行或多行具有相同的国家/地区,则这些行将根据 customer_name 列按升序排序。

示例 2

如果我们想要从Employees表中检索所有数据,并首先按Department列升序排序,然后按Salary列升序排序,那么SQL查询将是

SELECT * FROM Employees
ORDER BY Department ASC, Salary ASC;
登入後複製

上述查询的输出为

员工ID

员工姓名

部门

薪资

4

爱丽丝

人力资源

40000

5

汤姆

人力资源

42000

1

约翰

IT

50000

3

鲍勃

IT

55000

2

销售

45000

这些示例演示了如何使用 Order by 子句对 MS SQL Server 中的查询结果集进行排序。

使用 NULL 值排序

当我们使用 Order by 子句时,NULL 值的排序方式有所不同,具体取决于我们是按升序还是降序排序。按升序排列,首先显示 NULL 值,按降序排列,最后显示 NULL 值。

例如

SELECT * FROM customers
ORDER BY city DESC;
登入後複製

在此示例中,结果集将根据城市列按降序排序。 NULL 值将显示在最后。

结论

MS SQL Server 中的 Order by 子句是一个功能强大的工具,它允许我们根据一个或多个列以升序或降序对查询结果集进行排序。通过了解 Order by 子句的语法和用法,我们可以创建更复杂且更有意义的查询来从数据库中检索数据。

以上是MS SQL Server 中的排序依據的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:tutorialspoint.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板