2017-06-04 98 views
-1

在我的數據庫中,我使用Top 101過濾了我的記錄。我的目標是獲取最後一個在我的過濾列表中返回的Id。如何從另一個頂級選擇中選擇頂級1?

有沒有辦法讓我的SQL命令中使用單個語句?

SELECT TOP 101 Id FROM Messages WHERE Validation = 2 AND Shown > 0 ORDER BY Id DESC 

從這個列表中我需要最後一個條目。

如何在單個查詢中獲得此信息?

謝謝。

+0

您正在使用什麼數據庫構建在SQL Server引入? –

+0

我正在使用SQL服務器 – Cainnech

回答

0
SELECT TOP 1 temp.Id 
from (SELECT TOP 101 Messages.Id FROM Messages WHERE Validation = 2 AND Shown > 0 ORDER BY Messages.Id ASC) as temp 
+0

很棒,就是這樣,謝謝! – Cainnech

1

假設您的代碼返回至少101行,那麼你可以使用OFFSET/FETCH

SELECT Id 
FROM Messages 
WHERE Validation = 2 AND Shown > 0 
ORDER BY Id DESC 
OFFSET 100 
FETCH NEXT 1 ROW ONLY; 

這ANSI標準2012

+1

對我來說最好的方法 – Esperento57