- TOP:指定筆數
- TOP * PERCENT :指定百分比
- WITH TIES: 加上
with ties包括相同值top 5 with tiestop 10 percent with ties
1
2
TOP (expression) [PERCENT]
[ WITH TIES ]
Top
取得前 N 筆資料
1
2
3
--以販賣單價排序商品清單(降幕),並取得前5筆
select top 5 * from 商品清單
order by 販賣單價 desc
執行結果:
1
2
3
4
5
6
商品ID 商品名稱 群組名稱 進貨單價 販賣單價
2 筆記型電腦 電腦主機 299000 270000
1 桌上型電腦 電腦主機 130000 180000
5 15吋液晶螢幕 周邊設備 130000 120000
4 19吋螢幕 周邊設備 104000 95000
6 數位相機 周邊設備 50000 70000
Top * Percent
取得前 N% 筆資料
1
2
3
--以販賣單價排序商品清單(降幕),並取得前20%筆資料
select top 20 percent * from 商品清單
order by 販賣單價 desc
執行結果:
1
2
3
4
商品ID 商品名稱 群組名稱 進貨單價 販賣單價
2 筆記型電腦 電腦主機 299000 270000
1 桌上型電腦 電腦主機 130000 180000
5 15吋液晶螢幕 周邊設備 130000 120000
With Ties (包括相同值)
WITH TIES: 加上with ties包括相同值
top 5 with tiestop 10 percent with ties
範例: Top n With Ties
取得販賣數量最高的前3筆資料
1
2
3
4
5
6
7
--取得販賣數量最高的前3筆資料
select top 3 * from [dbo].[販賣資料]
order by 數量 desc
--取得販賣數量最高的前3筆資料(包含相同值)
select top 3 with ties * from [dbo].[販賣資料]
order by 數量 desc
執行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* 3筆資料 */
傳票編號 列編號 處理日 商品ID 負責人ID 顧客ID 數量
9 1 2006-05-25 00:00:00.000 5 1 2 5
13 1 2006-06-15 00:00:00.000 9 2 5 5
1 2 2006-04-06 00:00:00.000 4 1 2 3
/* 加上with ties後,有5筆資料,相同值也會列出來 */
傳票編號 列編號 處理日 商品ID 負責人ID 顧客ID 數量
9 1 2006-05-25 00:00:00.000 5 1 2 5
13 1 2006-06-15 00:00:00.000 9 2 5 5
1 1 2006-04-06 00:00:00.000 1 1 2 3
1 2 2006-04-06 00:00:00.000 4 1 2 3
5 1 2006-05-08 00:00:00.000 3 2 1 3
範例: Top * Percent With Ties
取得販賣數量最高的前20%筆資料
1
2
3
4
5
6
7
--前20%的資料(只列出四筆)
select top 20 percent * from [dbo].[販賣資料]
order by 數量 desc
--加上with ties後,販賣數量相同的也會列出來(列出5筆)
select top 20 percent with ties * from [dbo].[販賣資料]
order by 數量 desc
執行結果:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
/* top 20 percent */
傳票編號 列編號 處理日 商品ID 負責人ID 顧客ID 數量
9 1 2006-05-25 00:00:00.000 5 1 2 5
13 1 2006-06-15 00:00:00.000 9 2 5 5
1 1 2006-04-06 00:00:00.000 1 1 2 3
1 2 2006-04-06 00:00:00.000 4 1 2 3
/* top 20 percent with ties */
傳票編號 列編號 處理日 商品ID 負責人ID 顧客ID 數量
9 1 2006-05-25 00:00:00.000 5 1 2 5
13 1 2006-06-15 00:00:00.000 9 2 5 5
1 1 2006-04-06 00:00:00.000 1 1 2 3
1 2 2006-04-06 00:00:00.000 4 1 2 3
5 1 2006-05-08 00:00:00.000 3 2 1 3