首页新闻找找看学习计划

sql排序分组问题。

0
悬赏园豆:15 [待解决问题]

有没有办法用一个sql实现,按ID排序后,如果连续的Value值相同,则合并成一条记录,类似于group by,但不完全去除重复值。

将如下的结果集:

ID Value

1  100

2  100 

3   50

4   50

5   100

查询后为:

1  100

3  50

5  100

悠然轻松的主页 悠然轻松 | 初学一级 | 园豆:112
提问于:2012-07-04 16:58
< >
分享
所有回答(3)
0

  SELECT (SELECT MAX(id) FROM test WHERE VALUE=t.[VALUE])id, [VALUE]
  FROM test t
GROUP BY
       t.[VALUE]

hushaorenaspnet | 园豆:280 (菜鸟二级) | 2012-07-04 17:38
0

你这个与“顺序”有关的问题,要用游标的。

snipersun | 园豆:204 (菜鸟二级) | 2012-07-05 11:31
0

只要计算一下前一个item的value 然后跟当前的item 比较, 留下不同的就好了

 

declare  @test table (id int,  val int)

insert into @test

values
 (1, 100)
,(2, 100)
,(3, 50)
,(4, 50)
,(5, 100)

select base.id, base.val from
(
    select t.id, t.val, previousval = (select t2.val from @test t2   where t2.id = t.id -1)
    from @test t
) base
where base.val <> base.previousval or base.previousval is null
gunsmoke | 园豆:3592 (老鸟四级) | 2012-07-05 12:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册