就是查询包括被置顶在你的5条记录,比如下面的表我要查包括B='1'的所有加上A到序排列后取出的N条记录(B=‘1’的所有记录加上N应该等于5)A        B        C
1        1        1
2        1        1
3        5        1
4        3        1
5        7        1
6        2        1
7        1        1
8        5        1
9        3        1

解决方案 »

  1.   

    “我要查包括B='1'的所有加上A到序排列后取出的N条”这句怎么看也不明白什么意思
      

  2.   

    查出 置顶的帖子在查出其他贴子,用Union 合并在一起速度上好像有点不好。只是提供建议
      

  3.   

    select top n * from ## where b=1 order by a desc
    不明白
      

  4.   

    没看懂,
    是不是这样?
    select * from table where b='1' order by b,a desc
      

  5.   

    select * from tabname where b='1'
    union
    select * from tabname order by a desc
      

  6.   

    如果A只能是1或者0的话,有一个取巧的办法select top 5 from [table] order by B desc,A desc照你的意思,置顶的肯定会在前面(B=1),再按A(时间)倒序
      

  7.   

    select top 5 from [table] where b='1' order by a desc
      

  8.   

    搞忘记 * 了。不好意思
     select top 5 * from [table] where b='1' order by a desc
      

  9.   

    那其他的怎么办?一页又不是只显示被置顶的帖子。还有很多没有被置顶的帖子呢!就以我发的帖子里的表为例子,我希望按顺序返回如下5条记录A        B        C
    1        1        1
    2        1        1
    7        1        1
    9        3        1至少需要两次排序,但是SQL查询在嵌套里是不能有Order by子句的用UNION也是没有排序的结果我现在用一个很傻的办法解决,但是觉得不好
      

  10.   

    》》》
    如果A只能是1或者0的话,有一个取巧的办法select top 5 from [table] order by B desc,A desc照你的意思,置顶的肯定会在前面(B=1),再按A(时间)倒序------------------------------------------------------这个办法是不行的你想过翻页怎么办?万一被置顶的帖子时间是最早的那我如果取出最小的值翻页不就不对了