求一查询语句 在线等

qish69 2005-06-26 04:26:40
有一张表一共16记录
结构
teamid int
teamname varchar

现在想通过查询得到
按 teamid 排序,得到前八条记录后八条记录交替的一个视图,比如说第1条记录,和第16条记录形成一条记录,第2条记录和第15记录形成一条记录.这样查询出来共8条记录
查询得到结构
teamA_id
teamA_name
teamB_id
teamB_name
...全文
50 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
raidenzxx 2005-06-26
  • 打赏
  • 举报
回复
这样查效率低是一定的,如果teamid不是连续的,只能用IDENTITY建立临时列
tx1icenhe 2005-06-26
  • 打赏
  • 举报
回复
如果不连续(注意这个语句效率很低,数据量小的时候才能使用)

select a.teamid as teamA_id,a.teamname as teamA_name,
b.teamid as teamB_id,b.teamname as teamB_name
from 一张表 a,一张表 b
where (select count(*) from 一张表 where teamid<=a.teamid) % 2 =1
and (select count(*) from 一张表 where teamid<=b.teamid) =(select count(*) from 一张表 where teamid<=a.teamid)+1
order by a.teamid

--没有测试
--第一个回复也应该加:
--order by a.teamid



tx1icenhe 2005-06-26
  • 打赏
  • 举报
回复
如果teamid连续,而且从奇数开始:

select a.teamid as teamA_id,a.teamname as teamA_name,
b.teamid as teamB_id,b.teamname as teamB_name
from 一张表 a,一张表 b
where a.teamid % 2 =1
and b.teamid =a.teamid+1


27,579

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 应用实例
社区管理员
  • 应用实例社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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