SELECT TOP 10 * 
FROM News 
WHERE newsId NOT IN
(
    SELECT TOP 30 newsId
    FROM news
) 这是查询第十到第二十条
记录我想查询倒数第十到倒数第二十.应该
怎么写
给个公式..写个SQL语句用.谢谢..
感激到流鼻涕..

解决方案 »

  1.   

    SELECT  * 
    FROM News 
    WHERE newsId NOT IN
    (
        (select top (count(*)-20) * from news)
         and
        (select top 10 * from news)

      

  2.   

    SELECT TOP 10 * 
    FROM News 
    WHERE newsId NOT IN
    (
        SELECT TOP 10 newsId
        FROM news order by newsId desc
    )
      

  3.   

    SELECT TOP 10 * 
    FROM News 
    WHERE newsId NOT IN
    (
        SELECT TOP 10 newsId
        FROM news order by newsId desc
    )
    order by newsId desc
      

  4.   

    和上面的差不多 就加个 order by 要排序的字段 desc
      

  5.   

    如果lz是sqlserver 2005
    可以参考
    以下示例将返回行号为 50 到 60(含)的行,并以 OrderDate 排序。 复制代码 
    USE AdventureWorks;
    GO
    WITH OrderedOrders AS
    (SELECT SalesOrderID, OrderDate,
    ROW_NUMBER() OVER (order by OrderDate)as RowNumber
    FROM Sales.SalesOrderHeader ) 
    SELECT * 
    FROM OrderedOrders 
    WHERE RowNumber between 50 and 60