[MS-SQL]排序查詢 ORDER BY、指定查詢資料列數目 TOP

我們可以在下 SELECT 語法時,加入 ORDER BY 來依某欄位做排序,而排序可以由小至大 (ASC;ascending; 預設)、或由大至小 (DESC;descending)。如果要限定查詢資料列的數目,可使用 TOP 語法,TOP 通常會搭配 ORDER BY 一起使用,接下來就為大家介紹用法。


ORDER BY 依據指定的資料欄位排序查詢的結果集

在 MSSQL 中 ORDER BY 是很常用到的,我們先建一個資料表( CREATE TABLE ) 如下:

CREATE TABLE dbo.Cars(stype VARCHAR(15), Price MONEY, Color VARCHAR(10), YearM date);  
INSERT dbo.Cars VALUES  
    ('轎車', 20000, 'red', '2010-01-01'), ('敞篷車', 35000, 'blue', '2000-12-01'),   
    ('轎跑車', 25000, 'red', '2020-01-01'), ('麵包車', 16000, 'blue', '2015-01-01'); 

接下來我們依出廠日期先後來做排序ORDER BY 的預設是由小至大。

語法:

select * from dbo.Cars order by YearM

select * from dbo.Cars order by YearM desc

實作:


TOP 限定查詢資料列的數目

如果我們要找出價錢最高的兩輛車,這時候就要使用 TOPORDER BY 做搭配。如果要找出每種顏色中價錢最高的一輛車可參考 ROW_NUMBER()

語法:

select top 2 * from dbo.Cars order by Price desc

實作:


👉[MS-SQL]分群組排序ROW_NUMBER()

👉[MS-SQL]建立資料表格 CREATE TABLE

👉[MS-SQL]字串處理-找字串位置

發佈留言