select top n * from ## where b=1 order by a desc 不明白
没看懂, 是不是这样? select * from table where b='1' order by b,a desc
select * from tabname where b='1' union select * from tabname order by a desc
如果A只能是1或者0的话,有一个取巧的办法select top 5 from [table] order by B desc,A desc照你的意思,置顶的肯定会在前面(B=1),再按A(时间)倒序
select top 5 from [table] where b='1' order by a desc
搞忘记 * 了。不好意思 select top 5 * from [table] where b='1' order by a desc
那其他的怎么办?一页又不是只显示被置顶的帖子。还有很多没有被置顶的帖子呢!就以我发的帖子里的表为例子,我希望按顺序返回如下5条记录A B C 1 1 1 2 1 1 7 1 1 9 3 1至少需要两次排序,但是SQL查询在嵌套里是不能有Order by子句的用UNION也是没有排序的结果我现在用一个很傻的办法解决,但是觉得不好
》》》 如果A只能是1或者0的话,有一个取巧的办法select top 5 from [table] order by B desc,A desc照你的意思,置顶的肯定会在前面(B=1),再按A(时间)倒序------------------------------------------------------这个办法是不行的你想过翻页怎么办?万一被置顶的帖子时间是最早的那我如果取出最小的值翻页不就不对了
不明白
是不是这样?
select * from table where b='1' order by b,a desc
union
select * from tabname order by a desc
select top 5 * from [table] where b='1' order by a desc
1 1 1
2 1 1
7 1 1
9 3 1至少需要两次排序,但是SQL查询在嵌套里是不能有Order by子句的用UNION也是没有排序的结果我现在用一个很傻的办法解决,但是觉得不好
如果A只能是1或者0的话,有一个取巧的办法select top 5 from [table] order by B desc,A desc照你的意思,置顶的肯定会在前面(B=1),再按A(时间)倒序------------------------------------------------------这个办法是不行的你想过翻页怎么办?万一被置顶的帖子时间是最早的那我如果取出最小的值翻页不就不对了