[SQL][MSSQL]找出某一欄位為最小值時的資料列(比較兩種寫法)

  • 4160
  • 0
  • 2016-02-02

使用SQL語法找出某一欄位為極值時的資料列。

資料表如下圖:

查詢需求:

找出Time為最小值時的資料列(黃色標示的資料列)。

 

MSSQL語法1:

select top 1 
[ItemID], [StateID], [Time]
from [Items] 
order by [Time]

MSSQL語法2:

select [ItemID], [StateID], [Time]
from [Items] 
where [Time] = (select min([Time]) from [Items] )

看看查詢成本:

看起來,第2種方法成本較低。

但是,我對資料表加入Time欄位的索引之後:

再看看查詢成本:

兩種寫法的成本就相同了。