給定任何SELECT
語句,我想用skip和take操作符來包裝它。用skip/take操作符包裝任何SQL Server 2008語句
例如,對於甲骨文我創造了這個功能:
public override string WrapSelectSqlWithPagination(string sql, int skipRows, int numberOfRows)
{
string innerSql = String.Format("select /* FIRST_ROWS(n) */ a.*, ROWNUM rnum from ({0}) a where ROWNUM <= {1}", sql, skipRows + numberOfRows);
return String.Format("select * from ({0}) where rnum > {1}", innerSql, skipRows);
}
它完美。
我想爲SQL Server做同樣的事情,有可能嗎?
請注意,我對提前排序並不知情。
謝謝。
我發現了這個SO的好鏈接,我希望與您需要的重疊?! http://stackoverflow.com/questions/548475/efficient-way-to-implement-paging – SGB
你知道'TOP'子句沒有'ORDER BY'沒有關係嗎? SQL中沒有保證的順序。 – JNK
是的,我知道。但是誰需要關心它是調用函數的人,而不是我:) – andrecarlucci