我們可以在下 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 限定查詢資料列的數目
如果我們要找出價錢最高的兩輛車,這時候就要使用 TOP 與 ORDER BY 做搭配。如果要找出每種顏色中價錢最高的一輛車可參考 ROW_NUMBER() 。
語法:
select top 2 * from dbo.Cars order by Price desc
實作: