在我的數據庫中,我使用Top 101過濾了我的記錄。我的目標是獲取最後一個在我的過濾列表中返回的Id。如何從另一個頂級選擇中選擇頂級1?
有沒有辦法讓我的SQL命令中使用單個語句?
SELECT TOP 101 Id FROM Messages WHERE Validation = 2 AND Shown > 0 ORDER BY Id DESC
從這個列表中我需要最後一個條目。
如何在單個查詢中獲得此信息?
謝謝。
在我的數據庫中,我使用Top 101過濾了我的記錄。我的目標是獲取最後一個在我的過濾列表中返回的Id。如何從另一個頂級選擇中選擇頂級1?
有沒有辦法讓我的SQL命令中使用單個語句?
SELECT TOP 101 Id FROM Messages WHERE Validation = 2 AND Shown > 0 ORDER BY Id DESC
從這個列表中我需要最後一個條目。
如何在單個查詢中獲得此信息?
謝謝。
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
很棒,就是這樣,謝謝! – Cainnech
假設您的代碼返回至少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
對我來說最好的方法 – Esperento57
您正在使用什麼數據庫構建在SQL Server引入? –
我正在使用SQL服務器 – Cainnech