2014-09-11 59 views
-5

我在表中有一個文本數據類型並且想要獲取最後一行。SQL Server 2012獲取表中沒有唯一標識符的最後一行

我使用以下SQL並獲得正確答案我想知道是否從查詢中選擇REACH 2012-13,因爲它是表中的最後一行,或者因爲REACH 2012-13在REACH 2011-12之後一個字符串。希望這是有道理

感謝

SELECT TOP 1 [Reach Report] 
FROM [REACH Reference] 
ORDER BY [Reach Report] DESC 

,給我

REACH 2012-13 

的數據是:

REACH 2009-10 
REACH 2010-11 
REACH 2011-12 
REACH 2012-13 
+0

我不明白你的問題。你想知道'TOP'究竟是什麼?提示:「TOP」與通過ORDER BY子句提供的顯式排序有關,而不是與「SELECT」子句中列的數據類型有關。 「TOP」完全不關心*你選擇了什麼?它只關心*你想要多少'SELECT'。 – stakx 2014-09-11 07:46:43

+0

因此它是你的問題,因爲它給你你想要的最後一行? – 2014-09-11 07:48:59

+0

@MitchWheat評論的意義(完整形式)是什麼? – Jaguar 2014-09-11 08:03:00

回答

1

從10,000 ft查閱:

字符串比較正在完成b每個Reach Report值之間,每個比較的結果用於排序4行(ORDER BY [Reach Report] DESC)。

REACH 2012-13 
REACH 2011-12 
REACH 2010-11 
REACH 2009-10 

然後,選擇並返回第一個(SELECT TOP 1 [Reach Report])。

+0

對不起,我措辭嚴厲的問題。我想知道是否從查詢中選擇REACH 2012-13,因爲它是表格中的最後一行,或者因爲REACH 2012-13以REACH 2011-12之後的字符串形式出現 – maggs 2014-09-11 08:29:21

+1

因爲它是訂單中的第一行結果集,你可以在我提供的例子中看到。 – helluin 2014-09-11 09:33:40

相關問題