如何用SQL语句每隔3行取出一条记录?

binbin 2001-09-27 04:25:37
我有一个大数据库,里面有大量重复的数据(相邻三条近似但不完全相同,不可合并),希望在显示时只显示一次。有一个列是autoincrease类型,但现在已不是连续排列了,中间有删除的空值。
对SQL不熟,怎么办?Group吗?
...全文
443 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
Jack_Loo 2001-10-02
  • 打赏
  • 举报
回复
select (select * from tbl t where t.rownum%3=0 and t.primarykey=tbl.primarykey),(select * from tbl t where t.rownum%3=1 and t.primarykey=tbl.primarykey),(select * from tbl t where t.rownum%3=2 and t.primarykey=tbl.primarykey) from tbl
是不是这个意思,我不是很明白你的话。
lilaoda 2001-09-30
  • 打赏
  • 举报
回复
你只好照(一片绿洲)去做了!!!
ke 2001-09-30
  • 打赏
  • 举报
回复
做一个循环,每三次提取一条纪录。
binbin 2001-09-29
  • 打赏
  • 举报
回复
判断标准就是每本的三条信息是连续的。
9Thoughts 2001-09-27
  • 打赏
  • 举报
回复
不好做,我没有办法,笨点用cursor,就是太慢。
smartdonkey 2001-09-27
  • 打赏
  • 举报
回复
说说不同输入三次的资料的不同之处吧,可能友好的解决方法.最好给出的数据的样本
progame 2001-09-27
  • 打赏
  • 举报
回复
那你总得有个判断标准吧
binbin 2001-09-27
  • 打赏
  • 举报
回复
我说过,不能去掉。这是我们资料室的数据,不知为什么,他们把每本资料都输入了三次,但三次的内容不完全一样,反正有用处吧。
现在想查询时每本只显示一次。
clwyf 2001-09-27
  • 打赏
  • 举报
回复
是oracle,且假设你的数据严格是顺序存储的,相邻三条近似,
select *
from
(
select decode(rownum%3,0,rownum,null) truerow,a.*
from table a
)
where truerow is not null;
szsusuia 2001-09-27
  • 打赏
  • 举报
回复
你这个问题怎么看不明白,如果是完全相同的,就用distinct去掉,如果不相同,就显示出来好了。

34,590

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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