--这样能看明白吗?
SELECT TOP 3 * FROM test WHERE 
(id > 
  (
    SELECT MAX(id) AS Expr1 FROM 
    (
      SELECT TOP 5 id  FROM test AS test_1 ORDER BY id
    ) AS a
  )

解决方案 »

  1.   

    那是给字段取别名的吧~ 可是在这里这么写也没什么意义啊~ 最后一个 AS a 是有必要的
      

  2.   

    SELECT    TOP 3 *  FROM        test 
    WHERE    (id >(SELECT    MAX(id) AS Expr1 FROM    (SELECT    TOP 5 id  FROM  test AS test_1   ORDER BY id) AS a)) 
    ORDER BY id 
    --分解
    (SELECT    TOP 5 id  FROM  test AS test_1   ORDER BY id)AS A
    --從上面語句中(相當與a表)查找最大id
    SELECT    MAX(id) AS Expr1 FROM    (SELECT    TOP 5 id  FROM  test AS test_1   ORDER BY id) AS a
    --從TEST 中查找符合id>上面的的紀錄
    WHERE    (id >(SELECT    MAX(id) AS Expr1 FROM    (SELECT    TOP 5 id  FROM  test AS test_1   ORDER BY id) AS a)) 
    --其中A,EXPR1分別為別名
      

  3.   

    同事給講懂了
    先把test升序排序建立虛擬表test_1
    然後取前5個作為虛擬表a
    從a中取最大的id為Expr1
    再從test中取比Expr1大的3個升序排序