2017-01-22 51 views
0

在我的表中,我試圖從BusinessEntityID列中進行選擇,並按升序從最低的38 ...開始排序,直到最高的2357.當執行此查詢時,我不得到我正在尋找的結果我得到的第一個前十行。所選列的升序排列

沒有順序按

USE [AdventureWorks2014] --Database Name 

Select top 10 [FirstName], [LastName], [BusinessEntityID] 

From [AdventureWorks2014].[Person].[Person] 

結果:由升序

USE [AdventureWorks2014] --Database Name 

Select top 10 [FirstName], [LastName], [BusinessEntityID] 

From [AdventureWorks2014].[Person].[Person] 

Order By [BusinessEntityID] ASC 

FirstName      LastName       BusinessEntityID 
------------------------------ ----------------------------------- ---------------- 
Syed       Abbas        285 
Catherine      Abel        293 
Kim       Abercrombie       295 
Kim       Abercrombie       2170 
Kim       Abercrombie       38 
Hazem       Abolrous       211 
Sam       Abolrous       2357 
Humberto      Acevedo        297 
Gustavo      Achong        291 
Pilar       Ackerman       299 

訂單結果:

FirstName   LastName   BusinessEntityID 
-------------------- ------------------- ---------------- 
Ken     Sánchez    1 
Terri    Duffy    2 
Roberto    Tamburello   3 
Rob     Walters    4 
Gail     Erickson   5 
Jossef    Goldberg   6 
Dylan    Miller    7 
Diane    Margheim   8 
Gigi     Matthew    9 
Michael    Raheem    10 
+2

首先查詢意以下。帶'排序依據'的'頂部'會產生任意結果。從第二個查詢中,我可以說最低的'BusinessEntityID'是'1'而不是'38',即使第二個查詢按預期工作。 –

+0

如果您想將'BusinessEntityID's'從'38'過濾爲'2357',那麼使用'Where'子句和'by BusinessEntityID'。刪除'TOP'關鍵字 –

+0

我明白了,謝謝你的迴應。 – taji01

回答

2

猜測你想第一個10個lastnames,所以你可以這樣來做:

select * from (
    Select top 10 [FirstName], [LastName], [BusinessEntityID] 
    From [AdventureWorks2014].[Person].[Person] 
    order by LastName, FirstName 
) X 
order by BusinessEntityID 
+0

這就是我一直在尋找的東西。謝謝。我會標記爲已回答。 – taji01

+0

@ taji01我現在看看OP是怎麼回事。 +1以正確解釋問題。 –

1

取出TOP 10並添加WHERE

USE [AdventureWorks2014] --Database Name 
Select [FirstName], [LastName], [BusinessEntityID] 
From [AdventureWorks2014].[Person].[Person] 
Where [BusinessEntityID] between 38 and 2357 
Order By [BusinessEntityID] ASC 
0

你能也使用這一個

USE [AdventureWorks2014] --database名稱

選擇頂層10 [姓名],[姓氏],[BusinessEntityID]

從[AdventureWorks2014] [人]。[人] WHERE [BusinessEntityID]> = 38和[BusinessEntityID] < = 2357

順序按[BusinessEntityID] ASC