数据库查询问题,各位高手帮个忙!!!!

cnjzy0106 2008-04-10 07:11:02
偶想要实现的效果是想
1
2
3
4
5
6
7
8
9
10
条数据
想查5上面3条和下面3条
用top可以实现但是我想查询结果就返回一次,到同一张表里
不知道各位有什么高见??
先谢谢拉~~最后提一下是SQLSERVER
没散出去的50分在这里给了哈~~
...全文
106 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cnjzy0106 2008-04-12
  • 打赏
  • 举报
回复
呵呵~~不谈对不对~先谢谢了 !!!
分照给!
jn1705 2008-04-11
  • 打赏
  • 举报
回复

select top 4 from (select * from (select top 5 * from t_table order by id) order by id desc)--先取前五条,按降序排列,然后拿到前四条id= 5,4,3,2
union
select top 4 from (select * from (select top 5 * from t_table order by id desc) order by id)--再取后五条,按升序排列,拿到前四条,即id=5,6,7,8

可以将上面的结果插入到一个临时表里,然后提出除了id=5的其他纪录,就得到了LZ想要得结果。

如果写一个存储过程,也很简单。

这道题考察的是灵活运用排序语句。
jn1705 2008-04-11
  • 打赏
  • 举报
回复

select top 4 from (select * from (select top 5 * from t_table order by id) order by id desc)--先取前五条,按降序排列,然后拿到前四条id= 5,4,3,2
union
select top 4 from (select * from (select top 5 * from t_table order by id desc) order by id)--再取后五条,按升序排列,拿到前四条,即id=5,6,7,8

可以将上面的结果插入到一个临时表里,然后提出除了id=5的其他纪录,就得到了LZ想要得结果。

如果写一个存储过程,也很简单。

这道题考察的是灵活运用排序语句。
kokobox 2008-04-11
  • 打赏
  • 举报
回复
为什么不是oracle? 我会oracle 的............................
aoyihuashao 2008-04-11
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 jn1705 的回复:]

select top 4 from (select * from (select top 5 * from t_table order by id) order by id desc)--先取前五条,按降序排列,然后拿到前四条id= 5,4,3,2
union
select top 4 from (select * from (select top 5 * from t_table order by id desc) order by id)--再取后五条,按升序排列,拿到前四条,即id=5,6,7,8

可以将上面的结果插入到一个临时表里,然后提出除了id=5的其他纪录,就得到了LZ想要得结果。


[/Quote]


语法错误,好像子句里不能用ORDER的。
老紫竹 2008-04-10
  • 打赏
  • 举报
回复
select top 3 * from (select top 5 *  from t_table order by id)r order by id desc

81,092

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧