我已經得到了以下工作查詢:SQL Server 2008中仿效限制功能
string sqlString =
"SELECT * " +
"FROM (SELECT ROW_NUMBER() OVER (ORDER BY Id DESC) AS RowNum, * " +
"FROM StreamView " +
"WHERE Recipient = @Recipient " +
") AS RowConstrainedResult " +
"WHERE RowNum >= @startAt " +
"AND RowNum < @howMany " +
"ORDER BY RowNum;";
然後返回給定startAt和的howmany變量的正確行。 我想這樣做與下面的查詢:
string sqlString =
"SELECT DISTINCT l.* FROM Streams l " +
"INNER JOIN Friendships f ON f.Sender = @UserName OR f.Recipient = @UserName " +
"WHERE l.Sender <> @UserName AND l.Recipient <> @UserName AND (" +
"l.Sender = f.Recipient OR l.Sender = f.Sender OR " +
"l.Recipient = f.Sender OR l.Recipient = f.Recipient) " +
"ORDER BY DateTime DESC;";
上述查詢作品完美,但我想要得到的範圍,而不是所有可用行。我需要第一個查詢的相同功能。
想法?謝謝。
什麼排名的範圍? – Hogan
你是什麼意思?第一個查詢是在c#類中,並被調用像這樣('getstream(0,10,'someone')') - 這將從表中返回0到10行。我試圖對第二個查詢做同樣的事情,因爲它們現在已經是它的結果了,但增加了範圍功能(用於懶惰滾動) – user1027620
您正在按日期訂購 - 所以您想要訂購日期的前10個那麼訂購第二個10日期? – Hogan