永发信息网

有没有显示分组并显示数据顺序的SQL语句

答案:3  悬赏:20  手机版
解决时间 2021-02-07 22:57
  • 提问者网友:抽煙菂渘情少年
  • 2021-02-07 06:29
时间,现在我想把所有数据select出来,按日期,人员,然后改变当前行的顺序值的方法(每次存储上次的日期和人员,此顺序列是某一天,某个人,先后时间的顺序,效果如图所示是这样的,日期,人员,此次比对二值,相同:

我现在有了在数据查询出来之后,再遍历查看当前日期和人员是否不同,比方说我又一张表,三列,时间排序,然后我想最后再加一列,就是顺序列:顺序增加1,不同顺序初试为1)
这样做感觉特费劲
最佳答案
  • 五星知识达人网友:末日狂欢
  • 2021-02-07 07:00
如果为SQL2005以上则可以
select 日期,人员,时间,row_number() over(partition by 日期,人员 order by 时间) from table
全部回答
  • 1楼网友:从此江山别
  • 2021-02-07 09:14
如果只是简单的找出重复学号的话 select id from table1 group by id having count(*) > 1 如果是想要查询出来的数据是排重后的 select * from ( select a.*,row_number() over(partition by id order by id) rn from table1 a ) where rn = 1 这样查询出来的信息不会为重了。
  • 2楼网友:空山清雨
  • 2021-02-07 08:19
declare mycur cursor for select DISTINCT 日期, 姓名 from table declare @T1 DATETIME DECLARE @T2 CHAR declare @t table (日期 DATETIME,姓名CHAR ,时间 CHAR,顺序 int ) open mycur fetch next from mycur into @T1, @T2 while @@fetch_status=0 begin select *,identity (int,1,1) into #a from YB1 where 日期= @t1 and 姓名= @t2 order by 时间 insert into @t select * from #a drop table #A fetch next from mycur into @t1, @T2 end close mycur deallocate mycur select * from @t
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯